VB6 如何对一张图片文件进行缩放后保存

redsuntv 2011-05-08 11:36:04
A.bmp 想缩放后保存,如何实现?
...全文
451 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 redsuntv 的回复:]
A.bmp 想缩放后保存,如何实现?
[/Quote]通过picturebox重新paint,然后通过savepicture保存
dbcontrols 2011-05-09
  • 打赏
  • 举报
回复
方法很多,搜索一下,网上代码一大堆
东方之珠 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 veron_04 的回复:]
引用 10 楼 chenjl1031 的回复:
VB code
Option Explicit
Private Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long……
[/Quote]
这样缩放图片会失真,加上HALFTONE缩放模式就可以了.参见: http://topic.csdn.net/u/20080910/20/1ab23882-3cb0-49dc-9b86-eb169e58a823.html
贝隆 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chenjl1031 的回复:]
VB code
Option Explicit
Private Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, B……
[/Quote]
和我想到一块儿去了,呵呵!
无·法 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chenjl1031 的回复:]

VB code
Option Explicit
Private Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, B……
[/Quote]既然楼上直接給鱼了,那我给完渔再给鱼吧。

'添加一个Picture1即可
Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.Picture = LoadPicture("c:\ 缩放前.jpg")
Picture1.Width = Picture1.Width / 2
Picture1.Height = Picture1.Height / 2
Picture1.PaintPicture Picture1, 0, 0, Picture1.Width, Picture1.Height
SavePicture Picture1.Image, "c:\缩放后.jpg"
End Sub
东方之珠 2011-05-09
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function StretchBlt Lib "gdi32.dll" (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
Private Const SRCCOPY As Long = &HCC0020

Private Sub Command1_Click()
'保存个铲铲c:\chanchan_1.bmp
SavePicture Picture1.Image, "c:\chanchan_1.bmp"
End Sub

Private Sub Form_Load()
Picture2.ScaleMode = 3
Picture1.ScaleMode = 3
Picture2.AutoRedraw = True
Picture1.AutoRedraw = True
'先在picture2上加载个铲铲
Picture2.Picture = LoadPicture("c:\chanchan.jpg")
'缩放个铲铲到picture1
Call StretchBlt(Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, SRCCOPY)
'Picture1.Refresh
End Sub
无·法 2011-05-09
  • 打赏
  • 举报
回复
SavePicture 语句


从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中。

语法

SavePicture picture, stringexpression

SavePicture 语句的语法包含下面部分:

参数 描述
picture 产生图形文件的 PictureBox 控件或 Image 控件。
stringexpression 欲保存的图形文件名。


说明

无论在设计时还是运行时图形从文件加载到对象的 Picture 属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件。

Image 属性中的图形总是以位图的格式保存而不管其原始格式。


SavePicture 语句示例
本例使用 SavePicture 语句保存画在 Form 对象的 Picture 属性中的图形。要试用此例,可将以下代码粘贴到 Form 对象的声明部分,然后运行此例,单击 Form 对象。

Private Sub Form_Click ()
' 声明变量。
Dim CX, CY, Limit, Radius as Integer, Msg as String
ScaleMode = vbPixels ' 设置比例模型为像素。
AutoRedraw = True ' 打开 AutoRedraw。
Width = Height ' 改变宽度以便和高度匹配。
CX = ScaleWidth / 2 ' 设置 X 位置。
CY = ScaleHeight / 2 ' 设置 Y 位置。
Limit = CX ' 圆的尺寸限制。
For Radius = 0 To Limit ' 设置半径。
Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
DoEvents ' 转移到其它操作。
Next Radius
Msg = "Choose OK to save the graphics from this form "
Msg = Msg & "to a bitmap file."
MsgBox Msg
SavePicture Image, "TEST.BMP" ' 将图片保存到文件。
End Sub


以上全部是msdn中的,你应该找到正确的学习方式,一味的问别人是不行的。
无·法 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 redsuntv 的回复:]

引用 5 楼 sysdzw 的回复:
引用 3 楼 redsuntv 的回复:

引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。
谁说不行的?给出你的代码,几年前就做过类似的程序


picturebox 没有 sa……
[/Quote]谁说savepicture是picturebox的方法了。savepicture是独立的一个函数,你不清楚可以理解,但是你百度都不百度一下就给出不行二字那就是你的错了。
redsuntv 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sysdzw 的回复:]
引用 3 楼 redsuntv 的回复:

引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。
谁说不行的?给出你的代码,几年前就做过类似的程序
[/Quote]


picturebox没有savepicture功能。时间太久了,你糊涂了。。
redsuntv 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sysdzw 的回复:]
引用 3 楼 redsuntv 的回复:

引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。
谁说不行的?给出你的代码,几年前就做过类似的程序
[/Quote]

picturebox 没有 savepicture
你能做就发代码来。
无·法 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 redsuntv 的回复:]

引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。
[/Quote]谁说不行的?给出你的代码,几年前就做过类似的程序
redsuntv 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dbcontrols 的回复:]
方法很多,搜索一下,网上代码一大堆
[/Quote]

根本找不到。有和话发个网址来看。
redsuntv 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sysdzw 的回复:]
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存
[/Quote]

不行的。
ASP组件AspJpeg(加水印)使用方法大全ASPJPEG是Persits出品的共享软件,它是一款功能相当强大的asp图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能。 水印组件AspJpeg2.4.0.1 下面简单介绍一下使用方法: 您先要执行下载得到的exe文件,安装该组件. 检测是否注册成功的方法: 将以下代码保存为asp,拷贝在服务器上,用浏览器打开,看返回结果。 一、为图片添加水印 <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//源图片位置 Jpeg.Canvas.Font.Color = &H000000; ''''//水印字体颜色 Jpeg.Canvas.Font.Family = "宋体" ''''//水印字体 Jpeg.Canvas.Font.Size = 14 ''''//水印字体大小 Jpeg.Canvas.Font.Bold = False ''''//是否粗体,粗体用:True Jpeg.Canvas.Font.BkMode = &HFFFFFF; ''''//字体背景颜色 Jpeg.Canvas.Print 10, 10, "不败顽童工作室" ''''//水印文字,两个数字10为水印的xy座标 Jpeg.Save Server.MapPath("aaa_05.jpg") ''''//生成有水印的新图片保存位置 Set Jpeg = Nothing ''''//注销组件,释放资源 Response.Write "" ''''//在该页显示生成水印后的图片 %> 二、生成缩略图 <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//原图位置 Jpeg.Width = Jpeg.OriginalWidth/4 ''''//设图片宽度为原图的四分之一 Jpeg.Height = Jpeg.OriginalHeight/4 ''''//设图片高度为原图的四分之一 Jpeg.Sharpen 1, 130 ''''//设定锐化效果 Jpeg.Save Server.MapPath("aaa_small.jpg") ''''//生成缩略图位置及名称 Set Jpeg = Nothing ''''//注销组件,释放资源 Response.Write "" ''''//在该页显示生成缩略图 %> aspjpeg组件高级使用方法介绍 aspjpeg是一款非常强大的图片处理组件,纯英文版本。不过早已经有免费版和破解版,但是对其进行详细与深入介绍的文章却是不多,即使有也只牵涉到图片缩略和图片水印。可能是因为纯英文的缘故。 这里我就是针对这些问题谈谈aspjpeg的高级用法。这里的技术主要包括: 图片缩略 图片水印 安全码技术 图片切割 图片合并 数据库支持 更多不常用的方法介绍 以及相关的一些实用技术 aspjpeg唯一点不足的就是输出方式比较单一。在这里,我们主要谈将图片处理保存后再调用的这种输出方法。另外,本人比较懒,所以有些代码仍然引用于原文档,不懂的地方偶会加以解释! 学过vb或者.net的同志肯定一看就明白了。刷子来着。呵呵。 一、图片缩略 网站上可能会有很多图片,比如产品图片等,而且他们可能大小不一,宽度和高度也不一定一样,有的很大有的很小。如果放在一张网页上,可能会破坏版面,但是如果强制让他们按照指定的宽度和高度显示,因为比例不同还会出现变形,显示效果很糟糕,还有最大的缺点是,文件尺寸丝毫没有变化,当图片很大的时候,用户想要看到图片,必须经过漫长等待下载图片,怎么办呢? 好,这里设计到了缩略图,就像Windows中的缩略...

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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