社区
C++ Builder
帖子详情
如何得到图形的一部分?
Amour81
2005-01-18 05:23:05
比如有一个TPicture *pic,比如大小是(1024*768)
如何得到一个新的Picture ,ppic
使得这个ppic是pic的一个区域(比如是100*100)???
拜托各位,很着急!!
...全文
124
10
打赏
收藏
如何得到图形的一部分?
比如有一个TPicture *pic,比如大小是(1024*768) 如何得到一个新的Picture ,ppic 使得这个ppic是pic的一个区域(比如是100*100)??? 拜托各位,很着急!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Amour81
2005-01-19
打赏
举报
回复
我用TBitmap试了下,对JPG格式也是支持的。
Maconel
2005-01-18
打赏
举报
回复
为什么用TPicture呢,我都是用TBitmap
jishiping
2005-01-18
打赏
举报
回复
楼上的,使用 Canvas->Pixels 来做,程序不要慢的要死才怪。你这儿自有100×100,还不需要太长时间,如果是1000×1000,你看看需要多长时间。
weill
2005-01-18
打赏
举报
回复
Image2控件得到Image1控件里一部分图像的例子供你参考:
for(int i = 0;i<=100;i++){
for(int j = 0;j<=100;j++){
TColor MYColor = Image1->Canvas->Pixels[i][j];
Image2->Canvas->Pixels[i][j] = MYColor;
};
};
jishiping
2005-01-18
打赏
举报
回复
1、你没有指定ppic->Bitmap的大小,所以用 ppic->Bitmap->Canvas 得到的Canvas,它的Handle
为NULL,所以你无法得到裁减的图像
2、即使你指定了ppic->Bitmap的大小,如果打开的不是bmp图像(比如JPEG),那么你的代码,
还是得不到你要的图像!这是因为,加载JPEG时,pic->Graphic 指向的是JPEGImage,而pic->
Bitmap 是NULL。正确的代码应该是:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (!OpenPictureDialog1->Execute())
return;
TPicture * pic = new TPicture();
TPicture * ppic = new TPicture();
pic->LoadFromFile(OpenPictureDialog1
->FileName);
TRect rect = Rect(0, 0, 128, 128);
ppic->Bitmap->Width = rect.Width();
ppic->Bitmap->Height = rect.Height();
ppic->Bitmap->Canvas->Draw(-rect.left,
-rect.top, pic->Graphic);
Image1->Picture->Assign(ppic);
delete ppic; delete pic;
}
Amour81
2005-01-18
打赏
举报
回复
比如我用这样的代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPicture * pic = new TPicture();
TPicture * ppic = new TPicture();
TRect rect = Rect(0,0,128,128);
if (!OpenPictureDialog1->Execute())return;
pic->LoadFromFile(OpenPictureDialog1->FileName);
ppic->Bitmap->Canvas->CopyRect(rect,pic->Bitmap->Canvas,rect);
ppic->Bitmap->Canvas->CopyMode = cmWhiteness;
Image1->Picture->Assign(ppic);
}
Image1并没有显示图片??
Amour81
2005-01-18
打赏
举报
回复
前面的CopyRect可以实现,但怎么生成新的Picture呢?
jishiping
2005-01-18
打赏
举报
回复
“试过了,不行” -- 那是你自己写的代码不行,而不是方法不行。
Amour81
2005-01-18
打赏
举报
回复
试过了,不行
h13bk
2005-01-18
打赏
举报
回复
新建一个tbitmap,copyrect所需的部分
【奇境】计算机
图形
学底层原理-如何从C++独立编写一个openGL
跟随我们一行一行写完代码,你就会
得到
一个迷你版本的openGL
图形
库,你可以深度体会
图形
从模型变换,观察矩阵变换,投影矩阵变换一直到光栅化纹理操作的全套模拟流程。 课程介绍: 本课程将带领学员不使用任何
图形
库...
【转载】什么是计算机
图形
学?
”,其中除了介绍计算机
图形
学的基本概念,还介绍了学习计算机
图形
学需要的基础知识和学习方法,感觉这
一部分
很有启发,摘录如下: 三、学习计算机
图形
学需要哪些基础? 计算机
图形
学是一门与很多学科都交叉的...
什么是计算机
图形
学?
简单了解计算机
图形
学,以及如何如何学习计算机
图形
学(看资料部分)
图形
测试分析毫无头绪?HarmonyOS
图形
栈测试技术帮你解决
但业界的
图形
栈测试,绝大部分都只提供应用层面的数据,有
一部分
可以深入系统层分析,但仍无法触及硬件这一层的测试分析。 HarmonyOS
图形
栈测试技术,不仅可以深入系统层分析,帮助开发测试者
得到
数据背后的根因,...
计算机
图形
驱动程序原理,您知道更新计算机
图形
驱动程序的作用吗?怎么做
购买或使用计算机时,为了获得更好的视觉体验并... 功能:
图形
卡是计算机的核心
图形
显示部分. 在计算机硬件中,
图形
卡与计算机的
图形
显示功能有关. 坦率地说,它与屏幕有关. 对于游戏用户来说,显卡并不是很多游戏...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章