私はどこからでも見てきましたが、私はこれを行う方法を見つけることができません。私は特定の幅と高さの黒色のUIImageを作成する必要があります(幅と高さの変更、私はブラックボックスを作成し、それをUIImageにロードすることはできません)。 CGRectを作成してUIImageに変換する方法はありますか?あるいは、シンプルなブラックボックスを作るための他の方法がありますか?黒いUIImageを作成するには?
9
A
答えて
22
状況によっては、UIView
とbackgroundColor
を[UIColor blackColor]
に設定して使用している可能性があります。また、画像が単色である場合は、実際に表示する寸法の画像は必要ありません。必要なスペースを満たすように1x1ピクセルの画像を調整するだけです(たとえば、の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からそれを作成することにより、1920×1080である黒UIImageを作成する例です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)
あなただけのブラックボックスを必要とし、 'frame'のためにあなたの' CGRect'を使用して 'UIView'を作成し、' '[UIColor blackColor]に' backgroundColor'を設定し、追加した場合この新しい「UIView」を既存のビュー(例: 'addSubview'を使ってコントローラからこれを行う場合は' self.view'を実行します)。 – Rob
密接に関連しています:[安価な色の帯については、UIViewまたはUIImage?](http://stackoverflow.com/q/13885588)関連項目:[色付きUIImageのオーバーレイ](http:// stackoverflow。あなたが求めていることをする方法を教えてくれる[an answer](http://stackoverflow.com/a/10620128/603977)を持っています。 –