線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1334
推到 Plurk!
推到 Facebook!

怎麼使用JPEG格式從Image1轉到Image2

答題得分者是:senso
MVP2000
一般會員


發表:13
回覆:16
積分:5
註冊:2007-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-27 17:28:18 IP:61.231.xxx.xxx 訂閱
要怎麼Image1截屬JPEG格式到Image2

我參考了 BMP方法
[code cpp]
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Byte *ptr;
int r,g,b;
int gray;
int i,j;
int threshold;
Bmp->Assign(Image1->Picture->Bitmap);
Bmp->PixelFormat=pf24bit;


for(j=0;jHeight;j )
{ptr = (Byte *)Bmp->ScanLine[j];
for(i=0;iWidth;i )
{
b=ptr[i*3];
g=ptr[i*3 1];
r=ptr[i*3 2];
gray=(b*28 g*151 r*77)/256;
ptr[i*3]=(Byte)gray;
ptr[i*3 1]=(Byte)gray;
ptr[i*3 2]=(Byte)gray;
}
}

Image2->Picture->Assign(Bmp);
delete Bmp ;
[/code]

但是我使用了TJPEGImage 但是IMAGE2也沒出現圖片 ~
而且讀取的IMAGE1圖片也是JPEG為什麼IMAGE2沒有圖片
[code cpp]
TJPEGImage *jpeg = new TJPEGImage;
jpeg->Assign(Image1->Picture->Bitmap);
jpeg->PixelFormat = jf24Bit;
Image2->Picture->Assign(jpeg);
delete jpeg ;
[/code]
------
May I ask you something ?
編輯記錄
MVP2000 重新編輯於 2010-06-27 17:29:06, 註解 無‧
MVP2000 重新編輯於 2010-06-27 17:31:19, 註解 無‧
MVP2000 重新編輯於 2010-06-27 17:31:56, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-28 10:04:05 IP:61.219.xxx.xxx 訂閱
Image1->Picture->LoadFromFile如果是jpeg檔,圖應該要找Image1->Picture->Graphic,不是Image1->Picture->Bitmap
bmp檔則是Graphic和Bitmap都可
[code cpp]
TJPEGImage *jpeg = new TJPEGImage;
jpeg->Assign(Image1->Picture); //或Image1->Picture-Graphic
jpeg->PixelFormat = jf24Bit;
Image2->Picture->Assign(jpeg);
delete jpeg;
[/code]

補充一下
[code cpp]
Image2->Picture->Assign(jpeg); //Image2->Picture->Graphic->ClassName()會是TJPEGImage,沒有Image2->Picture->Bitmap
//若改
Image2->Picture->Bitmap->Assign(jpeg); //Image2->Picture->Graphic->ClassName()會是TBitmap,有Image2->Picture->Bitmap
[/code]
編輯記錄
senso 重新編輯於 2010-06-28 10:34:53, 註解 無‧
系統時間:2017-12-14 8:38:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!