C#ピクチャハンドラ札記

1696 ワード

まずC#のファイル削除をメモします.1.ファイルの削除、切り取り、名前変更は、常に正常に実行されますが、例外が発生します.2.フォルダの削除、切り取り、名前変更は、フォルダの中にファイルが開いていると操作が完了しません.Imageを使用します.FromFileメソッドでは、この画像を解放する前に、ファイルやフォルダの変更に失敗し、「アクセス拒否」の異常が報告されます.ファイルやフォルダを変更する場合はImageを使用する必要があります.FromFileメソッドで使用した画像を解放します.Image srcImg = Image.FromFile(@"D:\a.jpg"); Image cloneImge = new Bitmap(srcImage); srcImage.dispose(); これにより、元の画像を占有せずに表示でき、その画像やフォルダの操作にも影響を与えません.半透明効果:
 Graphics g = this.pictureBox1.CreateGraphics();
            Bitmap bitmap = new Bitmap(@"D:\My Documents\My Pictures\20100713133939131.jpg");
            float[][] matrixItems = {
                                     new float[]{1,0,0,0,0},
                                     new float[]{0,1,0,0,0},
                                     new float[]{0,0,1,0,0},
                                     new float[]{0,0,0,0.8f,0},
                                     new float[]{0,0,0,0,1},
                                     };
            ColorMatrix colorMatrix = new ColorMatrix(matrixItems);
            ImageAttributes imageAtt = new ImageAttributes();
            imageAtt.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
            int iWidth = bitmap.Width;
            int iHeight = bitmap.Height;
            g.DrawLine(new Pen(Color.Black, 25), new Point(10, 35), new Point(200, 35));
            //       
            g.DrawImage(bitmap, new Rectangle(30, 0, iWidth, iHeight), 0, 0, iWidth, iHeight, GraphicsUnit.Pixel, imageAtt);
            g.DrawString();
            g.Flush();
            g.Dispose();