IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> SwiftUI Image -> 正文阅读

[移动开发]SwiftUI Image

前言

xcode 13.3
iOS 15.4

1.创建 Image

如果是创建系统符号Image,可以设置Image的颜色、大小
如果是加载本地图片,则不行

VStack {
	//创建系统符号图像。
    Image(systemName: "arkit")
        .foregroundColor(.red)
        .font(.system(size: 50)) //使用font设置系统符号大小
    //创建本地图像。
    Image("turtlerock")
    
    Image("turtlerock")
        .foregroundColor(.red)
        .font(.system(size: 50))
}

在这里插入图片描述

1.1 resizable 自动缩放、适配父视图

/// Sets the mode by which SwiftUI resizes an image to fit its space.
/// - Parameters:
/// - capInsets: Inset values that indicate a portion of the image that
/// SwiftUI doesn’t resize.
/// - resizingMode: The mode by which SwiftUI resizes the image.
public func resizable(capInsets: EdgeInsets = EdgeInsets(), resizingMode: Image.ResizingMode = .stretch) -> Image

设置resizable

Image("turtlerock")
    .resizable()

在这里插入图片描述
在这里插入图片描述

1.2 设置视图填充方式

1.2.1 fill: 图片完全撑满整个视图,保持宽高比

Image("turtlerock")
     .resizable()
     .aspectRatio(contentMode: .fill)

在这里插入图片描述
1.2.1 fit: 使图片保持宽高比的情况下,宽或高有一个盛满视图

Image("turtlerock")
     .resizable()
     .aspectRatio(contentMode: .fit)

在这里插入图片描述
在这里插入图片描述

2、图片色彩调整功能

2.1 模糊效果

/// - Parameters:
/// - radius: The radial size of the blur. A blur is more diffuse when its
/// radius is large.
/// - opaque: A Boolean value that indicates whether the blur renderer
/// permits transparency in the blur output. Set to true to create an
/// opaque blur, or set to false to permit transparency.
///- 半径:模糊的半径大小。当模糊的半径较大时,它的漫反射性更强。
///- 不透明:一个布尔值,指示模糊渲染器是否允许模糊输出中的透明度。设置为 “true” 以创建不透明模糊,或设置为 “false” 以允许透明。
@inlinable public func blur(radius: CGFloat, opaque: Bool = false) -> some View

2.1.1 设置模糊效果半径

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .blur(radius: 2)
}

在这里插入图片描述

2.1.2 设置模糊效果半径、是否透明

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .blur(radius: 2, opaque: true)
}

在这里插入图片描述

2.2 设置图像亮度

/// - Parameter amount: A value between 0 (no effect) and 1 (full white
/// brightening) that represents the intensity of the brightness effect.
///- 参数量:介于 0(无效果)和 1(全白色加亮)之间的值,表示亮度效果的强度。
@inlinable public func brightness(_ amount: Double) -> some View

图片亮度默认为0

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .brightness(0.2)
}

在这里插入图片描述

2.3 图像颜色翻转

对图像的颜色进行翻转,通俗点说:就是黑色和白色、黄色和紫色、橙色和蓝色等这些互补色进行相互的转换

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .colorInvert()
}

在这里插入图片描述

2.4 添加颜色乘法效果

/// - Parameter color: The color to bias this view toward.   
///- 参数颜色:使此视图偏向的颜色。  

结果色总是比较暗的颜色,变化的幅度较为均匀,任何颜色与黑色想成产生黑色,任何颜色与白色相乘保持不变

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .colorMultiply(.red)
}

在这里插入图片描述

2.5 图像对比度

	/// - Parameter amount: The intensity of color contrast to apply. negative  values invert colors in addition to applying contrast.  
 ///- 参数量:要应用的颜色对比度的强度。负值除了应用对比度外,还会反转颜色。 
VStack {
    Image("home_blank")
    
    Image("home_blank")
        .contrast(1.5)
    Image("home_blank")
        .contrast(-1.5)
}

在这里插入图片描述

2.6 图像色调旋转

色调旋转效果很根据您指定的角度移动视图中的所有颜色,如果将色调旋转 360 度,则和原色一样

VStack {
    Image("home_blank")
    
    Image("home_blank")
        .hueRotation(Angle.degrees(100))
    Image("home_blank")
        .hueRotation(Angle.degrees(360))
}

在这里插入图片描述

2.7 增加颜色饱和度

参数值大于 1 时,增加色彩的饱和度,参数值等于 1 时,饱和度和原色相同,参数值为 0 时,会清楚图形里面的彩色信息,仅包含灰度信息
在这里插入图片描述

2.8 图形应用灰度效果

/// - Parameter amount: The intensity of grayscale to apply from 0.0 to less than 1.0. Values closer to 0.0 are more colorful, and values closer to 1.0 are less colorful.
///- 参数量:灰度的强度从 0.0 到小于 1.0。接近 0.0 的值颜色更鲜艳,而接近 1.0 的值颜色较少。
在这里插入图片描述

2.9 给图形半透明效果添加亮度

它会在视图之外创建一个半透明的蒙版,视图中的暗区变为透明,亮区变为不透明的黑色,中等亮度区域变为灰色
在这里插入图片描述

3 加载网络图片

struct Login: View {
    
    @State private var remoteImage: UIImage? = nil
    let placeholderImage = UIImage(named: "home_blank")
    
    var body: some View {
        Image(uiImage: (self.remoteImage ?? placeholderImage)!)
            .onAppear(perform: fetchRemoteImage)
    } 
    
    func fetchRemoteImage() {
        guard let url = URL(string: "https://t7.baidu.com/it/u=2621658848,3952322712&fm=193&f=GIF") else {
            return
        }
        URLSession.shared.dataTask(with: url) { data, response, error  in
            if let image = UIImage(data: data!) {
                remoteImage = image
            } else {
                print(error ?? "")
            }
        }
        .resume()
    } 
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:02:21  更:2022-03-21 21:03:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 19:06:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码