c#GDI+一般エラー発生詳細

970 ワード

一般的にこの問題に遭遇した友人は基本的にImageを呼び出している.Saveメソッドの場合、BitMapと似ていますが、この問題の原因は何でしょうか.
言うまでもなく、通常のパラメータエラー、権限の問題を除いて、残りのwinformで発生したのは、基本的に公式解釈のエラーです.
Bitmapオブジェクトまたは画像オブジェクトは、オブジェクトに対するロックの生存期間を保持するファイルから作成されます.そのため、画像を変更して保存して同じファイルを生成することはできません.
これは公式の原話ですが、解決策は簡単です.このイメージや画像オブジェクトがロックされている以上、この操作はできません.
このオブジェクトをコピーしてコピーを生成し、このコピーを操作すれば、この問題を解決することができます.
GDI+の中にあるので、Graphicを選択してこの操作を完了します.
 
if (pictureBox_Sreen.Image != null)
                {
                    Bitmap B=new Bitmap(pictureBox_Sreen.Image.Width,pictureBox_Sreen.Image.Height); //             
                    Graphics g = Graphics.FromImage(B);//         ,          
                    g.DrawImage(pictureBox_Sreen.Image, 0, 0);//                 

                    B.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);//         
                }

これで、保存時には、エラーが報告されません.PictureBox_ScreenはpictureBoxコントロールで、sfdはファイル保存ダイアログボックスで解決されます