redapple2008 发表于 2008-8-21 12:11:41

怎么调整图片的大小?

假如我现在的图片是800*600,我想让AU3来自动调整为1024*768,这个怎么操作?

[ 本帖最后由 redapple2008 于 2008-8-24 00:55 编辑 ]

redapple2008 发表于 2008-8-21 18:56:29

置顶,期待高手出现。

redapple2008 发表于 2008-8-22 10:47:55

没有调整图片大小的UDF吗?

redapple2008 发表于 2008-8-22 23:38:37

继续等待。。。。。。。。。。。。。。。。。。。。

redapple2008 发表于 2008-8-23 20:42:52

继续等待。。。。。。。。。。。。。。。。。。。。

顽固不化 发表于 2008-8-23 21:03:54

给你个小工具。没用就丢掉吧。

倚栏听风 发表于 2008-8-23 22:14:48

隐约记得好像某个对象可以实现这样的功能。

kakinkgb 发表于 2008-8-23 22:34:23

请参考这个帖子http://www.autoitx.com/forum.php?mod=viewthread&tid=1638&page=1#pid11403
举一反三

clonecd 发表于 2008-8-24 00:03:03

请参考以下代码,希望对你有帮助。

#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

redapple2008 发表于 2008-8-24 01:01:46

谢谢了
你的代码不错。

clonecd 发表于 2008-8-24 10:18:20

回复 10# redapple2008 的帖子

不敢居功,这个代码不是我的,我是从官网转过来的。

mo_shaojie 发表于 2011-4-17 10:07:54

我用3.3.6.1测试,图被转为黑屏的.不能使用.

bacoln 发表于 2012-8-22 13:41:06

最新版的没用 了

sonyhell 发表于 2012-12-13 10:35:55

v3.3.8.1用此方法转换图片以后,成了一张完全黑屏的图片啊啊啊啊!!!
咋整啊?
页: [1]
查看完整版本: 怎么调整图片的大小?