いえ画像処理なんてやったこともないから、何が悪いのかさっぱり分からん。ログを吐かせてみました。y;すると以下のような結果に。256:87...*(tmp+4)からは次のピクセルのデータを取得している模様。これはRGBAの値ですね。4番目:*(tmp+3)の値が常に255であることから、まあこれがアルファ値でしょうサンプルコードでは、ABGRの並びであることを想定している模様ですが、今回のログを見るにBGRAの順番で並んでいます。これは一体どういうことだろう、と探してみたらこんな記事が。最遅メンヘル研究会なるほどわからん。RGBAの並び順を勝手に想定して書いたらダメらしいということは分かった。image)を使えばよい模様。CGImageGetAlphaInfo(cgImage);となりますね。CGImageAlphaInfo;となっていて、今回シミュレータではkCGImageAlphaPremultipliedLastの画像として読み込まれていました。Guideに書いてあるみたいなので今度読みます。kCGImageAlphaFirstkCGImageAlphaPremultipliedFirstはARGB(つまりBGRA)kCGImageAlphaLastkCGImageAlphaPremultipliedLastはRGBA(つまりABGR)kCGImageAlphaNonekCGImageAlphaNoneSkipLastはアルファ値がなく、RGBー(つまりーBGR)kCGImageAlphaNoneSkipFirstはアルファ値がなく、ーRGB(つまりBGRー)kCGImageAlphaOnlyはアルファ値のみ(つまり...どういうことだってばよ?)といった感じだろうことが推察されます。endian.とのこと。CGBitmapContextCreateさて、厳密にやるならばアルファ値がない場合やアルファ値のみの場合、CMY等RGB以外の場合etc..についても処理を考える必要があるんだろうけど、当座は以下のような感じで良いのではないですかね。変な変数名ですみません。