托管C++ 图像快速读取

本文介绍了如何使用C++通过Bitmap类和LockBits方法来快速读取和处理图像,避免了GetPixel和SetPixel的低效问题,实现了对大图片的高效操作。
摘要由CSDN通过智能技术生成

  基于GetPixel 和 SetPixel 速度实在是太慢,处理大点的图片几乎崩溃的速度,幸好有解决方案~

   Bitmap^ bmp = gcnew Bitmap( "y.bmp" );
 
     Rectangle rect = Rectangle(0,0,bmp->Width,bmp->Height);
       System::Drawing::Imaging::BitmapData^ bmpData = bmp->LockBits( rect,   System::Drawing::Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat );

                // Get the address of the first line.
      IntPtr ptr = bmpData->Scan0;

                // Declare an array to hold the bytes of the bitmap.
                // This code is specific to a bitmap with 24 bits per pixels.
      int bytes =   bmpData->Stride  * bmp->Height ;
      array<Byte>^rgbValues = gcnew array<Byte>(bytes);

               // Copy the RGB values into the array.
              //  System::Runtime::InteropServices::Marshal::Copy( ptr, rgbValues, 0, bytes );
      int PixelSize=3;
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值