我到处看了看四周,但我不能找到一个方法来做到这一点。我需要创建一个特定宽度和高度的黑色UIImage(宽度和高度变化,所以我不能只创建一个黑盒子,然后将其加载到UIImage中)。有什么方法可以制作CGRect然后将其转换为UIImage?或者还有其他方法可以制作一个简单的黑盒子吗?如何创建一个黑色的UIImage?
9
A
回答
22
根据您的情况,您可能只需使用UIView
,其backgroundColor
设置为[UIColor blackColor]
。另外,如果图像颜色鲜艳,则不需要实际上是要显示其尺寸的图像;你可以缩放1x1像素图像(例如,通过设置一个UIImageView
的contentMode
到UIViewContentModeScaleToFill
)来填充所需的空间。
话虽如此,它可能是有益的,看看如何实际产生这样一个形象:
CGSize imageSize = CGSizeMake(64, 64);
UIColor *fillColor = [UIColor blackColor];
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
[fillColor setFill];
CGContextFillRect(context, CGRectMake(0, 0, imageSize.width, imageSize.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
6
UIGraphicsBeginImageContextWithOptions(CGSizeMake(w,h), NO, 0);
UIBezierPath* p =
[UIBezierPath bezierPathWithRect:CGRectMake(0,0,w,h)];
[[UIColor blackColor] setFill];
[p fill];
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
现在im
是图像。
该代码来几乎没有变化,从我的书的这一部分:http://www.apeth.com/iOSBook/ch15.html#_graphics_contexts
2
斯威夫特3:
func uiImage(from color:UIColor?, size:CGSize) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(size, true, 0)
defer {
UIGraphicsEndImageContext()
}
let context = UIGraphicsGetCurrentContext()
color?.setFill()
context?.fill(CGRect.init(x: 0, y: 0, width: size.width, height: size.height))
return UIGraphicsGetImageFromCurrentImageContext()
}
0
下面是从创建一个CGImage创建它创建了一个黑色的UIImage是1920×1080的例子从CIImage:
let frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 1920, height: 1080))
let cgImage = CIContext().createCGImage(CIImage(color: .black()), from: frame)!
let uiImage = UIImage(cgImage: cgImage)
相关问题
- 1. 如何用编程方式创建一部分黑色的UIImage RGB渐变
- 2. 如何动态在iPhone上创建一个彩色的1x1 UIImage?
- 3. 如何创建一个代表UIImage径向部分的UIImage?
- 4. 我如何绘制一个图像到另一个UIImage来创建一个UIImage
- 5. 从NSString创建一个UIImage
- 6. SKLabelNode创建黑色矩形
- 7. iOS:将UIImage中的黑色更改为另一种颜色
- 8. 从两个UIImageView创建一个UIImage
- 9. 使用html2canvas截图MapBox创建一个黑色的JPG
- 10. 这是为什么创建一个黑色的图像?
- 11. 如何摆脱我的UIImage周围的黑色?
- 12. ImageMagick:如何创建一个不透明度为40%的黑色矩形?
- 13. 我如何创建一个播放/暂停按钮,如youtube黑色浆果java?
- 14. 如何创建一个带有按钮的地图(UIImage)动画?
- 15. 如何在OpenCV中创建背景黑色和前景白色?
- 16. 创建UIImage作为边框颜色
- 17. objective-c - 用Core Graphics创建一个UIImage
- 18. 一个UIImage CoreGraphics在创建不重复
- 19. 从XIB创建UIImage如何构建?
- 20. 创建一个黑色透明模态视图控制器
- 21. 如何选择一个UIImage的区域,然后创建一个新的区域?
- 22. 如何创建一个UIImage具有透明背景
- 23. iOS UIImage如何将黑色转换为透明编程?
- 24. 黑莓如何创建Tabbar?
- 25. 如何在XSL中创建带白字的黑色矩形?
- 26. 如何创建一个懒惰的名单,在图像黑莓
- 27. 一个红色的黑色案例
- 28. iPhone iOS如何实例化一个黑色和白色的CGColorSpaceRef?
- 29. 一个大的,绿色的UIImage人?
- 30. 当出现一个新表单时创建一个黑色背景
如果你只是需要一个黑盒子,用你'CGRect'为'frame'创建'UIView',设置'backgroundColor'到'[的UIColor blackColor]',然后添加这个新的'UIView'到您现有的视图(例如'self.view',如果从控制器执行此操作),使用'addSubview'。 – Rob
密切相关:[对于彩色,这是更便宜的,或的UIView的UIImage的大片?](http://stackoverflow.com/q/13885588)参见:[叠加一个UIImage用彩色](HTTP://计算器。 COM/q/845278),其具有[答案](http://stackoverflow.com/a/10620128/603977),告诉你怎么做你问什么。 –