2
私はCGContextRef
を持っており、それを描いてアルファを指定することができます。それを試してみると完璧に動作します。しかし、私はそれを赤色または緑色に着色しようとしていますが、どのブレンドモードを選択するにしても、アルファはに設定されています。正しい色を描くことは実際には実行可能な選択肢ではありません。私はUIImage
をファイルシステムから読み込むことができるようにしたいので、どのようにすればよいでしょうか?Colourise CGContextRefアルファを残しておきます
編集:例コード(幅と高さが所定のフロートである、点コンテキストと色の内側に位置すべてがCGPointsのアレイは、100%の不透明度とUIColorである) -
UIGraphicsBeginImageContext(CGSizeMake(width,height));
CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextClearRect(contextRef, CGRectMake(0.0f, 0.0f, width, height));
CGContextSetRGBStrokeColor(contextRef, 0.0f, 0.0f, 0.0f, 1.0f);
CGContextSetRGBFillColor(contextRef, 1.0f, 1.0f, 1.0f, 1.0f);
CGContextSetLineWidth(contextRef, lineWidth);
CGContextBeginPath(contextRef);
CGContextMoveToPoint(contextRef, points[0].x, points[0].y);
for (int i = 1; i < 4; i++) {
CGContextAddLineToPoint(contextRef, points[i].x, points[i].y);
}
CGContextAddLineToPoint(contextRef, points[0].x, points[0].y); // Encloses shape
CGContextDrawPath(contextRef, kCGPathFillStroke);
[color setFill];
CGContextBeginPath(contextRef);
CGContextSetBlendMode(contextRef, kCGBlendModeMultiply);
CGContextAddRect(contextRef, CGRectMake(0.0f, 0.0f, width, height));
CGContextDrawPath(contextRef, kCGPathFill);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
感謝あなたの助けのために事前にあなたは、
jrtc27
あなたの問題をよりよく見るために、いくつかのサンプルコードを教えてください。 –
私の編集をご覧ください。 – jrtc27
これは助けてください。私はあなたの考え方を理解しようとしているので、私が正しいのか教えてください。 ここからわかるように、透明性のない黒い枠線を持つ白い四角形を描こうとしています。次に、あなたは未知の関数[color setFill]を実行します。私はそれが何をしているのかわかりません(名前が自分自身で話しているにもかかわらず、私たちにその情報を与えたいかもしれません)。次に、以前のrectの上に同じ次元の別のパスを描きます。それから、あなたはその絵を持ってそのイメージにそれを保存したいと思っています。 –