C# 操作 彩色图像
2008-03-17 18:08
176 查看
C# 操作 彩色图像
2007-11-14 08:42
2007-11-14 08:42
//throw new System.NotImplementedException(); string strLoad = @"C:\VectorQuantization\TrainingImages\RGB\1.bmp"; string strR = @"C:\Red.bmp"; string strG = @"C:\Green.bmp"; string strB = @"C:\Blue.bmp"; // Create a new bitmap. Bitmap bmp = new Bitmap(strLoad); Bitmap bmpR = new Bitmap(bmp); Bitmap bmpG = new Bitmap(bmp); Bitmap bmpB = new Bitmap(bmp); // Lock the bitmap's bits. Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); //24bppRGB System.Drawing.Imaging.BitmapData bmpData = bmpR.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); //32bppArgb //System.Drawing.Imaging.BitmapData bmpData = // bmpR.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, // PixelFormat.Format32bppArgb); // Get the address of the first line. IntPtr ptr = bmpData.Scan0; // Declare an array to hold the bytes of the bitmap. int bytes = bmpData.Stride * bmp.Height; byte[] rgbValues = new byte[bytes]; // Copy the RGB values into the array. System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes); if (bmpData.PixelFormat == PixelFormat.Format24bppRgb) { // Keep every third value. A 24bpp bitmap will look only red. for (int counter = 0; counter < rgbValues.Length; counter += 3) { //rgbValues[counter] = 255;//Blue //rgbValues[counter + 1] = 255;//Green //rgbValues[counter + 2] = 255;//Red } } if (bmpData.PixelFormat == PixelFormat.Format32bppArgb) { // Keep every third value. A 24bpp bitmap will look only red. for (int counter = 0; counter < rgbValues.Length; counter += 4) { //rgbValues[counter] = 255;//Blue //rgbValues[counter + 1] = 255;//Green //rgbValues[counter + 2] = 255;//Red rgbValues[counter + 3] = 255;//A } } // Copy the RGB values back to the bitmap System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes); // Unlock the bits. bmpR.UnlockBits(bmpData); // Save the R Image bmpR.Save(strR); |
相关文章推荐
- BGRABitmap图像操作8:彩色纹理
- C#实现彩色图像灰度处理
- 解析C#彩色图像灰度化算法的实现代码详解
- C# kinect v2学习笔记(三) 彩色图像
- C#中Bitmap类实现对图像操作的一些方法
- c#指针进行图像操作
- C# 指针操作图像 细化处理
- ImagesUtil java图片操作 缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
- C# 图像处理:复制屏幕到内存中,拷屏操作
- ImagesUtil java图片操作 缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
- Win8 Metro(C#)数字图像处理--2.41彩色图像密度分割算法
- BGRABitmap图像操作8:彩色纹理,阈值
- c#图像操作代码
- 解析C#彩色图像灰度化算法的实现代码详解
- C#中Bitmap类实现对图像操作的一些方法
- VTK修炼之道23:图像基本操作_灰度图像映射成伪彩色图像(查表法)
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
- matlab 彩色图像操作
- C语言处理图像基本操作1400(读入、拷贝、写出图像及彩色图转灰度图)
- 用C#、Emgu写的一个显示图像、彩色变黑白、二值化的程序。