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

redsuntv 2011-05-08 11:36:04
A.bmp 想缩放后保存,如何实现?
...全文
520 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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]

不行的。

7,785

社区成员

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

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