当前位置:编程学习 > VB >>

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

A.bmp 想缩放后保存,如何实现? --------------------编程问答--------------------
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存 --------------------编程问答-------------------- 方法很多,搜索一下,网上代码一大堆 --------------------编程问答--------------------
引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。 --------------------编程问答--------------------
引用 2 楼 dbcontrols 的回复:
方法很多,搜索一下,网上代码一大堆


根本找不到。有和话发个网址来看。 --------------------编程问答--------------------
引用 3 楼 redsuntv 的回复:
引用 1 楼 sysdzw 的回复:
引用楼主 redsuntv 的回复:
A.bmp 想缩放后保存,如何实现?
通过picturebox重新paint,然后通过savepicture保存


不行的。
谁说不行的?给出你的代码,几年前就做过类似的程序 --------------------编程问答--------------------
引用 5 楼 sysdzw 的回复:
引用 3 楼 redsuntv 的回复:

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


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


picturebox 没有 savepicture 
你能做就发代码来。 --------------------编程问答--------------------
引用 5 楼 sysdzw 的回复:
引用 3 楼 redsuntv 的回复:

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


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



picturebox没有savepicture功能。时间太久了,你糊涂了。。 --------------------编程问答--------------------
引用 6 楼 redsuntv 的回复:
引用 5 楼 sysdzw 的回复:
引用 3 楼 redsuntv 的回复:

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


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


picturebox 没有 sa……
谁说savepicture是picturebox的方法了。savepicture是独立的一个函数,你不清楚可以理解,但是你百度都不百度一下就给出不行二字那就是你的错了。 --------------------编程问答-------------------- --------------------编程问答--------------------
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
--------------------编程问答--------------------
引用 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……
既然楼上直接給鱼了,那我给完渔再给鱼吧。

'添加一个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
--------------------编程问答--------------------
引用 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……

和我想到一块儿去了,呵呵!
--------------------编程问答--------------------
引用 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……

这样缩放图片会失真,加上HALFTONE缩放模式就可以了.参见: http://topic.csdn.net/u/20080910/20/1ab23882-3cb0-49dc-9b86-eb169e58a823.html
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,