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();