日期:2014-05-17  浏览次数:20864 次

C# 图片处理程序札记
首先记记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();