【SkiaSharp】PNG画像をBitmapImageで読み込みbyte配列で処理した後PNGで保存する方法

Yutaka_kun
LSC PSD
Published in
Mar 5, 2021

*2021.3.6更新

SkiaSharpで画像処理するサイトがあまりなかったので載せておきます。”何か処理”以降は僕もあまり理解してませんがとりあえずコピペでいけるはずです。

var bitmap = SKBitmap.Decode("path/imagename.png");
var bitmap_byte = bitmap.Bytes;
//バイト配列(bitmap_byte)を処理....
//処理したバイト配列をbitmap_byteに上書きしたと仮定
SKBitmap new_bitmap = new SKBitmap(bitmap.Width, bitmap.Height);IntPtr pixelsAddr = new_bitmap.GetPixels();
Marshal.Copy(bitmap_byte, 0, pixelsAddr, b_byte.Length);

var stream = File.OpenWrite("path/new_imagename.png");
new_bitmap.Encode(stream, SKEncodedImageFormat.Png, 80);
stream.Dispose();

--

--

Yutaka_kun
LSC PSD
Editor for

Microbiology technician,Machine learning engineer(beginner)