Re: [問題] 請教LockBits問題
: private: System::Void Form1_Load(sender,e)
: {
: //將pictureBox1內的影像資料給設給bmp
: Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image);
: //指定要鎖定的影像範圍
: Rectangle rect = Rectangle(0,0,bmp->Width,bmp->Height);
: //在BitmapData內,再指定記憶體的拴鎖模式與Bitmap的資料格式
: Imaging::BitmapData^ bmpData = bmp->LockBits( rect,
: Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat );
: //以指標取得影像資料的起始位址
unsigned char *ptr = (unsigned char*)bmpData->Scan0.ToPointer();
int padding = bmpData->Stride - 3 * bmp->Width;
: //計算此bmpData共有多少byte
: int bytes = bmpData->Stride * bmp->Height;
//可以直接對 bmpData 的資料作修改
int i=0;
for(int h=0; h < bmp->Height;h++)
{
for(int w=0; w < bmp->Width;w++)
{
ptr[i] = 255-ptr[i];
i++;
}
i += padding;
}
: bmp->UnlockBits( bmpData );
: //顯示最後結果
: pictureBox2->Image=bmp;
: }
: 可以執行,但是pictureBox2跟本沒有東西???
: 是否取像素值的方式有問題??
大概是這樣吧 有錯自己再修一下
剛剛想偷懶
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.130.211
推
11/19 22:40, , 1F
11/19 22:40, 1F
→
11/19 22:49, , 2F
11/19 22:49, 2F
推
11/19 22:50, , 3F
11/19 22:50, 3F
→
11/19 22:51, , 4F
11/19 22:51, 4F
推
11/19 22:54, , 5F
11/19 22:54, 5F
→
11/19 23:04, , 6F
11/19 23:04, 6F
※ 編輯: joefaq 來自: 140.116.130.211 (11/19 23:16)
推
11/19 23:28, , 7F
11/19 23:28, 7F
→
11/19 23:35, , 8F
11/19 23:35, 8F
推
11/19 23:55, , 9F
11/19 23:55, 9F
→
11/19 23:56, , 10F
11/19 23:56, 10F
→
11/19 23:56, , 11F
11/19 23:56, 11F
推
11/20 00:03, , 12F
11/20 00:03, 12F
→
11/20 00:03, , 13F
11/20 00:03, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):