2016-10-07 2 views
0

をPNGへバイト配列私はこのようなバイト配列に32ビット深度PNGファイル(1つのピクセル4バイト)をロード:私はピクセルを操作終了後のC# - 私のコードでファイル

//Pick a file 
OpenFileDialog FileValaszto = new OpenFileDialog(); 
FileValaszto.ShowDialog(); 

//Create BitmapImage 
BeolvasottKep = new BitmapImage(new Uri(FileValaszto.FileName)); 

//Create byte array 
stride = BeolvasottKep.PixelWidth * 4; 
int size = BeolvasottKep.PixelHeight * stride; 
MyPixelsArray = new byte[size]; 
BeolvasottKep.CopyPixels(pixels, stride, 0); 

"MyPixelsArray"私はそのデータを新しいPNG画像ファイルに保存したいと思います。私だけが...

私はネットを検索する以上の時間を費やしましたが、この正確な問題に対する解決策はありません。どんな助けも高く評価されます。ありがとう!

+0

を助ける願って、それを試してみてください 、このリンクは多分あなたを助けhttp://stackoverflow.com/questions/1922040/resize-an-image-c-sharp – Rumpelstinsk

+0

あなたは何を達成したいと正確に説明できますか? – Pikoh

+0

私が達成したいもの:1、PNGファイルをBytearrayにロードする(done)2、このバイト配列を操作して画像を変更する(done)3、このバイト配列をハードディスク上のPNGファイルに保存する。 (完了していないので、質問です) – Broadroad

答えて

0

テストされていませんが動作する可能性があります。私はあなたがあなたのイメージのサイズを変更しようとしている場合、それはあなたに

//Pick a file 
     OpenFileDialog FileValaszto = new OpenFileDialog(); 
     FileValaszto .ShowDialog(); 

     //Create BitmapImage 
     BeolvasottKep = new BitmapImage(new Uri(FileValaszto.FileName)); 

     //Create byte array 
     stride = BeolvasottKep.PixelWidth * 4; 
     int size = BeolvasottKep.PixelHeight * stride; 

     MemoryStream ms = new System.IO.MemoryStream(stride); 
     Image i = Image.FromStream(ms); 
+0

次に、i.Save( 'filepath'、System.Drawing.Imaging.ImageFormat.png);を実行します。 – kevinc

+0

あなたの親切な助けに感謝します!問題は解決される。 – Broadroad

+0

こんにちはBroadroad、あなたはどのように解決した言及していただけますか?ありがとう。 –

関連する問題