廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4876 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
w791212w
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x4 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][討論] BCB的各位看一下吧
這是圖片翻轉的
我用得時候只能用灰階圖
要怎麼樣改才能用彩圖


void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap *TheB, *TempB;
Byte *pyt1,*pyt2;
int W, ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被w791212w在2008-01-11 23:01重新編輯 ]


獻花 x0 回到頂端 [樓 主] From:臺灣中華HiNet | Posted:2008-01-11 18:08 |
mmx142857a
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x36
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

複製程式
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap *TheB, *TempB;
Byte *pyt1,*pyt2;
int W,H;

TempB=new Graphics::TBitmap();
TheB=Image1->Picture ->Bitmap;
TempB->Assign(TheB);

W=TheB->Width;
H=TheB->Height;

for(int y=0;y<H;y++)
{
    pyt1=(Byte*)TempB->ScanLine[y];
    pyt2=(Byte*)TheB->ScanLine[y];

    for(int x=0;x<W*3;x+=3)
    {
        pyt1[x]=pyt2[W-1-x];
        pyt1[x+1]=pyt2[W-1-(x+1)];
        pyt1[x+2]=pyt2[W-1-(x+2)];
    }

    TheB->Assign(TempB);
}

delete TempB;
Label5->Caption ="狀態:已完成翻轉";    
}

大概是這樣,因為灰階只有1Byte,所以只要做一次,
彩色有RGB共3Byte,所以要做三次。
不過如果你的圖還有附加透明度的話(如PNG),就變成
ARGB共4Byte,就要處理4次。


獻花 x0 回到頂端 [1 樓] From:臺灣中華HiNet | Posted:2008-01-13 06:21 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.063830 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言