怎么调整图片的大小?
假如我现在的图片是800*600,我想让AU3来自动调整为1024*768,这个怎么操作?[ 本帖最后由 redapple2008 于 2008-8-24 00:55 编辑 ] 置顶,期待高手出现。 没有调整图片大小的UDF吗? 继续等待。。。。。。。。。。。。。。。。。。。。 继续等待。。。。。。。。。。。。。。。。。。。。 给你个小工具。没用就丢掉吧。 隐约记得好像某个对象可以实现这样的功能。 请参考这个帖子http://www.autoitx.com/forum.php?mod=viewthread&tid=1638&page=1#pid11403
举一反三 请参考以下代码,希望对你有帮助。
#include <GDIPlus.au3>
_ImageResize("C:\WINDOWS\Web\Wallpaper\bliss.bmp", @ScriptDir & "\Bliss.jpg", 400, 300)
Func _ImageResize($sInImage, $sOutImage, $iW, $iH)
Local $hWnd, $hDC, $hBMP, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0
;OutFile path, to use later on.
Local $sOP = StringLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1))
;OutFile name, to use later on.
Local $sOF = StringMid($sOutImage, StringInStr($sOutImage, "\", 0, -1) + 1)
;OutFile extension , to use for the encoder later on.
Local $Ext = StringUpper(StringMid($sOutImage, StringInStr($sOutImage, ".", 0, -1) + 1))
; Win api to create blank bitmap at the width and height to put your resized image on.
$hWnd = _WinAPI_GetDesktopWindow()
$hDC = _WinAPI_GetDC($hWnd)
$hBMP = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH)
_WinAPI_ReleaseDC($hWnd, $hDC)
;Start GDIPlus
_GDIPlus_Startup()
;Get the handle of blank bitmap you created above as an image
$hImage1 = _GDIPlus_BitmapCreateFromHBITMAP ($hBMP)
;Load the image you want to resize.
$hImage2 = _GDIPlus_ImageLoadFromFile($sInImage)
;Get the graphic context of the blank bitmap
$hGraphic = _GDIPlus_ImageGetGraphicsContext ($hImage1)
;Draw the loaded image onto the blank bitmap at the size you want
_GDIPLus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $iW, $iW)
;Get the encoder of to save the resized image in the format you want.
$CLSID = _GDIPlus_EncodersGetCLSID($Ext)
;Generate a number for out file that doesn't already exist, so you don't overwrite an existing image.
Do
$i += 1
Until (Not FileExists($sOP & $i & "_" & $sOF))
;Prefix the number to the begining of the output filename
$sOutImage = $sOP & $i & "_" & $sOF
;Save the new resized image.
_GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID)
;Clean up and shutdown GDIPlus.
_GDIPlus_ImageDispose($hImage1)
_GDIPlus_ImageDispose($hImage2)
_GDIPlus_GraphicsDispose ($hGraphic)
_WinAPI_DeleteObject($hBMP)
_GDIPlus_Shutdown()
EndFunc 谢谢了
你的代码不错。
回复 10# redapple2008 的帖子
不敢居功,这个代码不是我的,我是从官网转过来的。 我用3.3.6.1测试,图被转为黑屏的.不能使用. 最新版的没用 了 v3.3.8.1用此方法转换图片以后,成了一张完全黑屏的图片啊啊啊啊!!!咋整啊?
页:
[1]