广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4880 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.013699 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言