のように保存すると、「GDI +で一般的なエラーが発生しました」というエラーが発生しました。これは、ピクセルピクセルデータ(16ビットのグレースケール値)の配列を持ち、jpegイメージとして保存しようとしています。しかし、私のコードは、 "一般的なエラーがGDI +で発生しました"の保存コマンドでクラッシュしています。私はこれを修正する方法を理解できません。私が保存しているディレクトリは私のアプリケーションで作成され、他のファイルもそこに書き込まれます。だから私はそれが許可の問題ではないことを知っている。データの破損の問題でしょうか? Bitmapオブジェクトにushortデータを取得するための手順が間違っていますか?私はushortのデータを持っているので、それをBitmapオブジェクトに取り込む方法を理解するのに多少の努力が必要だとわかりました。ここでBitmapオブジェクトをjpeg、C#
は私のコードです:
Bitmap img = new Bitmap(width, height, PixelFormat.Format16bppGrayScale);
Rectangle rect = new Rectangle(0,0, width, height);
BitmapData picData = img.LockBits(rect, ImageLockMode.ReadWrite, img.PixelFormat);
IntPtr pixelStartAddress = picData.Scan0;
WriteableBitmap pic = new WriteableBitmap(width, height, 96.0, 96.0, System.Windows.Media.PixelFormats.Gray16, null);
int stride = (thumb.XSize * pic.Format.BitsPerPixel + 7)/8;
pic.WritePixels(new System.Windows.Int32Rect(0, 0, width, height), dataArray, stride, 0);
pic.CopyPixels(new System.Windows.Int32Rect(0,0,thumb.XSize, thumb.YSize),pixelStartAddress, dataArray.Length * sizeof(ushort), stride);
img.UnlockBits(picData);
img.Save(path, ImageFormat.Jpeg);
この全体の事は非常にイライラとなっています。助けてください?!
これは別のスレッドで実行していますか? – jjxtra
ええ、私は別のスレッドでこれを実行します。それが問題だと思いますか? –