swiftでbitマップデータから画像を作成しているのですが、画素値を意図どおりに操作することができません。
原因がわかる方、別の方法をご存知の方いらっしゃいましたら,
ご教授お願いいたします。
var rawData = [UInt8](repeating: 0, count: 256*256*4) for i in 0..<256*256 { rawData[4*i] = 255 rawData[4*i+3] = 255 } let nsrawData = NSData(bytes: rawData, length: rawData.count) let cImage: CIImage = CIImage(bitmapData: nsrawData as Data, bytesPerRow: 256 * 4 * MemoryLayout<UInt8>.size, size: CGSize(width: 256, height: 256), format: kCIFormatRGBA8, colorSpace: nil) let redImage = createImageFrom(ciImage: cImage)
上記のような処理を行って画像を出力して見た所、意図どおり全ての画素値が rgba = [255, 0, 0, 255]となりまく行きます。
しかし
var rawData = [UInt8](repeating: 0, count: 256*256*4) for i in 0..<256*256 { rawData[4*i] = 128 rawData[4*i+3] = 255 } let nsrawData = NSData(bytes: rawData, length: rawData.count) let cImage: CIImage = CIImage(bitmapData: nsrawData as Data, bytesPerRow: 256 * 4 * MemoryLayout<UInt8>.size, size: CGSize(width: 256, height: 256), format: kCIFormatRGBA8, colorSpace: nil) let redImage = createImageFrom(ciImage: cImage)
例えばrの値を128に指定し画像を出力して見たところ、全ての画素値は rgba = [189, 0 , 0 , 255]
となってしまいます。
原因がわかる方いらっしゃいますでしょうか?
画素値というのは、はどうやって調べた値でしょうか?
あなたの回答
tips
プレビュー