CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  多媒体

图片转换格式(固定长宽)

楼主ilove8(千里|你去哪里了,我等了你很久了!)2006-03-06 11:43:55 在 VB / 多媒体 提问

原始图片(bmp,jpg)比较,我想把他转换成固定长*宽的图片,比如1024*768的图片  
  100*100的图片,同时保存成另外文件,格式是bmp.jpg等  
   
  完整代码,送上100分,谢谢 问题点数:100、回复次数:4Top

1 楼tztz520(午夜逛街)回复于 2006-03-06 12:51:21 得分 5

保存为另外格式的代码,你搜一下CSDN就有了,很多人问过的.  
   
  转换成固定长图片可以用两个PIC控件,一个装载你原始的图片.另一个就是你想输出的图片.  
  只要设好输出的那个PIC控件,利用PSet操作,保存输出图片.  
  dim   px   as   long  
  px=500  
  For   i   =   1   To   px  
        DoEvents  
        For   j   =   1   To   px  
              picLater.PSet   (i,   j),   picSource.Point(i,   j)    
        Next   j  
  Next   iTop

2 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-03-06 14:32:52 得分 0

楼上,方法,一点一点画,效率很低  
   
  我就另存图片,同时把尺寸设置成指定的大小Top

3 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-06 22:34:38 得分 95

推荐用GDI+,具体代码可以搜以前的帖子Top

4 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-06 22:38:55 得分 0

至于你的固定长宽,是指将多余的部分裁剪还是指将图形缩放,不管怎么样,下面的两个api可以帮助你:  
  StretchBlt:  
  【VB声明】  
      Private   Declare   Function   StretchBlt   Lib   "gdi32"   Alias   "StretchBlt"   (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal   nWidth   As   Long,   ByVal   nHeight   As   Long,   ByVal   hSrcDC   As   Long,   ByVal   xSrc   As   Long,   ByVal   ySrc   As   Long,   ByVal   nSrcWidth   As   Long,   ByVal   nSrcHeight   As   Long,   ByVal   dwRop   As   Long)   As   Long  
   
  【说明】  
      将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容。这个函数会在设备场景中定义一个目标矩形,并在位图中定义一个源图象。源矩形会根据需要进行伸缩,以便与目标矩形的大小相符    
   
  【返回值】  
      Long,非零表示成功,零表示失败。会设置GetLastError    
   
  【备注】  
      可用GetDeviceCaps函数判断特定的设备场景是否支持此函数  
      不可选择对源位图进行剪切或旋转处理,源位图也不能是一个图元文件设备场景  
   
  【参数表】  
      hdc   ------------     Long,目标设备场景  
   
      x,y   ------------     Long,目标矩形左上角的x,y坐标,以逻辑坐标表示  
   
      nWidth,nHeight   -     Long,目标矩形的宽度和高度,以逻辑坐标表示  
   
      hSrcDC   ---------     Long,源设备场景。如光栅运算未指定一个源,则这个参数应为零  
   
      xSrc,ySrc   ------     Long,用源DC的逻辑坐标表示的源矩形左上角位置  
   
      nSrcWidth,nSrcHeight   -     Long,分别指定用逻辑单位(以源DC为基础)传输的一幅图象的宽度和高度。如其中有一个参数的符号(指正负号)与对应的目标参数不符,位图就会在对应的轴上作镜像转换处理  
   
      dwRop   ----------     Long,传输过程中进行的光栅运算。如刷子属于光栅运算的一部分,就使用选入目标DC的刷子  
   
   
  BitBlt:  
  【VB声明】  
      Private   Declare   Function   BitBlt   Lib   "gdi32"   Alias   "BitBlt"   (ByVal   hDestDC   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal   nWidth   As   Long,   ByVal   nHeight   As   Long,   ByVal   hSrcDC   As   Long,   ByVal   xSrc   As   Long,   ByVal   ySrc   As   Long,   ByVal   dwRop   As   Long)   As   Long  
   
  【说明】  
      将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容    
   
  【返回值】  
      Long,非零表示成功,零表示失败。会设置GetLastError    
   
  【备注】  
      在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败  
      如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程  
   
  【参数表】  
      hDestDC   --------     Long,目标设备场景  
   
      x,y   ------------     Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示  
   
      nWidth,nHeight   -     Long,欲传输图象的宽度和高度  
   
      hSrcDC   ---------     Long,源设备场景。如光栅运算未指定源,则应设为0  
   
      xSrc,ySrc   ------     Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示  
   
      dwRop   ----------     Long,传输过程要执行的光栅运算  
   
  Top

相关问题

  • 格式转换
  • 格式转换
  • 格式转换
  • 怎样把EXCEL的数据转换成固定格式的WORD文档,急
  • FLASH格式转换!
  • 求格式转换?
  • datagrid中的日期列绑定数据之后显示固定的格式,这个日期格式怎么转换?
  • 时间格式转换
  • 字符格式转换。
  • 图像格式转换

关键词

  • 矩形
  • dc
  • 坐标
  • 函数
  • 逻辑
  • 代码
  • 转换
  • byval
  • 目标
  • long

得分解答快速导航

  • 帖主:ilove8
  • tztz520
  • rainstormmaster

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo