如何用BCB打开JPG, BMP, JPEG, PNG等常见的图片呢

action爱生活 2014-07-22 05:32:34
如题,TImage好像只能打开位图。打开之后当然需要设置图片大小、缩放、位置属性。各位大神是怎么解决的呢?
...全文
1837 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljh12306 2015-01-19
  • 打赏
  • 举报
回复
请问如何用BCB读取TIF格式图片的RGB值呀,跪求各位大哥呀!
linmutou 2014-08-16
  • 打赏
  • 举报
回复
我上面的代码,经测试,在Xe6下兼容所有的图片格式,包括gif/jpg/png等等。
oyefer 2014-07-31
  • 打赏
  • 举报
回复
楼主可以安装一套AlphaControls控件,里面的TsImage组件支持大量的图片格式。 比如:bmp, jpg, png, gif, ico, cur, pcx, ani, tga, tee, tif, tiff, emf, wmf
linlinxi007 2014-07-30
  • 打赏
  • 举报
回复
BCB6以上的都支持了。只是要注意加上头文件。
action爱生活 2014-07-29
  • 打赏
  • 举报
回复
引用 14 楼 action456789 的回复:
[quote=引用 13 楼 ccrun 的回复:] 新建一个工程,添加一个Image在窗体,然后看看Image的支持文件类型中有没有.png的格式?
试了下,显示jpg格式的图片可以很好的显示。 但是png格式图片显示不出来。要我导入头文件,导入后还是没有效果,几个头文件都试过了。[/quote] PNG图片也可以显示了,之前应该是头文件没有导正确。
action爱生活 2014-07-29
  • 打赏
  • 举报
回复
引用 13 楼 ccrun 的回复:
新建一个工程,添加一个Image在窗体,然后看看Image的支持文件类型中有没有.png的格式?
试了下,显示jpg格式的图片可以很好的显示。 但是png格式图片显示不出来。要我导入头文件,导入后还是没有效果,几个头文件都试过了。
宝龙哥 2014-07-29
  • 打赏
  • 举报
回复
xe6 u1倒是全部默认支持,不过Image的使用方法出现了巨大的变化
ccrun.com 2014-07-29
  • 打赏
  • 举报
回复
JPG格式早就是C++Builder自带支持了。
ccrun.com 2014-07-28
  • 打赏
  • 举报
回复
新建一个工程,添加一个Image在窗体,然后看看Image的支持文件类型中有没有.png的格式?
xjq2003 2014-07-28
  • 打赏
  • 举报
回复
引用 7 楼 action456789 的回复:
[quote=引用 2 楼 linmutou 的回复:] 给你一个代码吧,我经常用到:
#include <jpeg.hpp

void __fastcall TForm1::ShowPic(AnsiString sPicFile)//该函数可以兼容BMP和JPE。
{
  int i_type;
  TImage *Scr_Image =new TImage(this);
  Scr_Image->Width = User_Image->Width ; Scr_Image->Height = User_Image->Height ;
  Scr_Image->Visible = false;
  Graphics::TBitmap  *BM=new Graphics::TBitmap();
  BM->Width =User_Image->Width; BM->Height = User_Image->Height;
  BM->PixelFormat = pf24bit;
  Scr_Image->Stretch = true;
  Scr_Image->Picture->LoadFromFile(sPicFile);
  BM->Assign(Scr_Image->Picture->Graphic);//用这句可以兼容BMP和JPG
  //然后可以对BM进行随便操作。  
 //randomize();    i_type =  random(15) ;
 // ShowPicVariety(User_Image,BM,i_type);
  delete BM;  delete Scr_Image;
}
[code=c]
User_Image是神马?[/quote] 学习了
action爱生活 2014-07-28
  • 打赏
  • 举报
回复
引用 8 楼 ccrun 的回复:
木头的代码中,那个User_Image看起来是一个Image对象,这个无关紧要,你给Width和Height代入两个数值就行了。 关键的问题是他这个代码,没有PNG的库支持,也是显示不了PNG图片的。 PNGImage本来就是Pascal写的,C++Builder中可以使用。
安装PNGImage控件成功后,添加了一个PNGButton到窗口上,编译通过,运行出现 [Linker Error] Fatal: Access violation. Link terminated.错误,求教妖哥怎么解决。
shuiren1230 2014-07-28
  • 打赏
  • 举报
回复
装第三方控件
linmutou 2014-07-27
  • 打赏
  • 举报
回复
User_Image是一个Image对象,妖哥天才!关键是思路!PNG在BCB6中确实还不能支持!
ccrun.com 2014-07-26
  • 打赏
  • 举报
回复
木头的代码中,那个User_Image看起来是一个Image对象,这个无关紧要,你给Width和Height代入两个数值就行了。 关键的问题是他这个代码,没有PNG的库支持,也是显示不了PNG图片的。 PNGImage本来就是Pascal写的,C++Builder中可以使用。
action爱生活 2014-07-25
  • 打赏
  • 举报
回复
引用 2 楼 linmutou 的回复:
给你一个代码吧,我经常用到:
#include <jpeg.hpp

void __fastcall TForm1::ShowPic(AnsiString sPicFile)//该函数可以兼容BMP和JPE。
{
  int i_type;
  TImage *Scr_Image =new TImage(this);
  Scr_Image->Width = User_Image->Width ; Scr_Image->Height = User_Image->Height ;
  Scr_Image->Visible = false;
  Graphics::TBitmap  *BM=new Graphics::TBitmap();
  BM->Width =User_Image->Width; BM->Height = User_Image->Height;
  BM->PixelFormat = pf24bit;
  Scr_Image->Stretch = true;
  Scr_Image->Picture->LoadFromFile(sPicFile);
  BM->Assign(Scr_Image->Picture->Graphic);//用这句可以兼容BMP和JPG
  //然后可以对BM进行随便操作。  
 //randomize();    i_type =  random(15) ;
 // ShowPicVariety(User_Image,BM,i_type);
  delete BM;  delete Scr_Image;
}
[code=c]
User_Image是神马?
action爱生活 2014-07-25
  • 打赏
  • 举报
回复
引用 3 楼 ccrun 的回复:
楼主既然说用的是BCB,显然是在说C++Builder 6.0或者更低的版本了。这些低版本中是没有自带PNG库的,需要安装一个第三方的PNGImage组件。 至于BMP,JPEG,JPG这些格式,C++Builder中可以直接支持。 Graphics::TBitmap 用来访问BMP位图 TJPEGImage 用来访JPEG图片
百度了一下PNGImage,网上都只有delphi的。你那有BCB的吗?还有妖哥能否给个demo。感激不尽!
我不懂电脑 2014-07-23
  • 打赏
  • 举报
回复
用2009以上版本支持的
ychxter 2014-07-23
  • 打赏
  • 举报
回复
装c++builder2010吧,对这些图片都支持的!
ccrun.com 2014-07-23
  • 打赏
  • 举报
回复
楼主既然说用的是BCB,显然是在说C++Builder 6.0或者更低的版本了。这些低版本中是没有自带PNG库的,需要安装一个第三方的PNGImage组件。 至于BMP,JPEG,JPG这些格式,C++Builder中可以直接支持。 Graphics::TBitmap 用来访问BMP位图 TJPEGImage 用来访JPEG图片
linmutou 2014-07-23
  • 打赏
  • 举报
回复
给你一个代码吧,我经常用到:
#include <jpeg.hpp

void __fastcall TForm1::ShowPic(AnsiString sPicFile)//该函数可以兼容BMP和JPE。
{
  int i_type;
  TImage *Scr_Image =new TImage(this);
  Scr_Image->Width = User_Image->Width ; Scr_Image->Height = User_Image->Height ;
  Scr_Image->Visible = false;
  Graphics::TBitmap  *BM=new Graphics::TBitmap();
  BM->Width =User_Image->Width; BM->Height = User_Image->Height;
  BM->PixelFormat = pf24bit;
  Scr_Image->Stretch = true;
  Scr_Image->Picture->LoadFromFile(sPicFile);
  BM->Assign(Scr_Image->Picture->Graphic);//用这句可以兼容BMP和JPG
  //然后可以对BM进行随便操作。  
 //randomize();    i_type =  random(15) ;
 // ShowPicVariety(User_Image,BM,i_type);
  delete BM;  delete Scr_Image;
}
[code=c]
加载更多回复(1)

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧