ImageMagick なる外部ライブラリーがありこれを使おうかと色々調べたがあまりAndroid C#で利用している情報が見つからず結果断念。
https://github.com/MolotovCherry/Android-ImageMagick7
代わりに ImageSharp を利用することに
Visual Stuido の NuGet より、SixLabors.ImageSharp を選択して、Version 1.0.4 を指定してダウンロード
(最新だと、netstandard2.0 をサポートしていない?)
Package より netstandard2.0 フォルダーより以下のファイルをAssets/Plugins に保存
SixLabors.ImageSharp.dll
System.Numerics.Vectors.dll
System.Buffers.dll
System.Runtime.CompilerServices.Unsafe.dll
System.Memory.dll
System.Text.Encoding.CodePages.dll
あとは、Android でビルド
以下が画像を変換するコード(楽ちん)
// 色々な画像をPNGに変換 public static byte[] ConvertToPNG(byte[] imageData) { using (var image = SixLabors.ImageSharp.Image.Load(imageData)) { using (var outputStream = new MemoryStream()) { image.Save(outputStream, new PngEncoder()); return outputStream.ToArray(); } } }
iOS でももちろん動作します。