Image Resize, Ridimensiona le immagini

« Older   Newer »
  Share  
xMasteRx
icon11  CAT_IMG Posted on 5/1/2011, 03:00     +1   -1




Questa funzione l'ho fatta interamente io ^^
Spero sia utile a voi

CODICE
#include<GDIPlus.au3>
#include<WinAPI.au3>

Func _GDIPlus_ImageRedim($fOrig, $fDest, $nW, $nH)
;by »Master at http://autoit.forumcommunity.net - updated 07/06/2012
       If Not FileExists($fOrig) Then Return -1
       _GDIPlus_Startup()
       Local $hImage, $split, $ext, $hSrcDC, $hDC, $hBMP, $hBitmapImg, $hGraph, $hWND, $sW, $sH
       If @error Then Return -1
       $split=StringSplit($fDest, ".")
       $ext=$split[$split[0]]
       $hWND=_WinAPI_GetDesktopWindow()
       $hDC=_WinAPI_GetDC($hWND)
       $hBMP=_WinAPI_CreateCompatibleBitmap($hDC, $nW, $nH)
       _WinAPI_ReleaseDC($hWND, $hDC)
       $hBitmapImg=_GDIPlus_BitmapCreateFromHBITMAP($hBMP)
       $hImage=_GDIPlus_ImageLoadFromFile($fOrig)
       $sW=_GDIPlus_ImageGetWidth($hImage)
       $sH=_GDIPlus_ImageGetHeight($hImage)
       $hGraph=_GDIPlus_ImageGetGraphicsContext($hBitmapImg)
       _GDIPlus_GraphicsDrawImageRect($hGraph, $hImage, 0, 0, $nW+Ceiling($nW/$sW), $nH+Ceiling($nH/$sH))
       $CLSID = _GDIPlus_EncodersGetCLSID($Ext)
       If $CLSID="" Then
               $CLSID=_GDIPlus_EncodersGetCLSID("JPG")
               $fDest&=".jpg"
               ConsoleWrite(@CRLF&'!_GDIPlus_ImageRedim():Unable to get Encoder CLSID for the extension "'&$Ext&'". The new image was encoded with the JPG encoder.'&@CRLF)
       EndIf
       _GDIPlus_ImageSaveToFileEx($hBitmapImg, $fDest, $CLSID)
       _GDIPlus_ImageDispose($hImage)
       _WinAPI_DeleteObject($hBMP)
       _GDIPlus_BitmapDispose($hBitmapImg)
       _GDIPlus_GraphicsDispose($hGraph)
EndFunc


Edited by »Master - 7/6/2012, 18:39
 
Top
Aaly
CAT_IMG Posted on 5/1/2011, 03:08     +1   -1




Una breve descrizione? xD
Comunque utile, l'ho provata :UP
 
Top
xMasteRx
CAT_IMG Posted on 5/1/2011, 03:09     +1   -1




non sapevo che scrivere XD tanto è soltanto una funzione, mica una UDF G.G
 
Top
Ikezawa
CAT_IMG Posted on 5/1/2011, 03:46     +1   -1




Domani la prova ora crollo :D
 
Top
Ikezawa
CAT_IMG Posted on 5/1/2011, 20:40     +1   -1




CITAZIONE (xMasteRx @ 5/1/2011, 03:00) 
CODICE
$split=StringSplit($fDest, ".")
      $ext=$split[$split[0]]

... è vero il primo elemento contiene il numero di stringhe cosi se hai un file con più di un '.' ottieni sempre l'estensione :)


Domanda:
perchè se scrivo $ext=$split[$split[1]] $ext=$split[$split[2]] e cosi via fino al 6 ottengo sempre '6' ?

ciao :)
 
Top
xMasteRx
CAT_IMG Posted on 6/1/2011, 01:08     +1   -1




eh no, veramente io usavo $split[$split[0]] perché mi scoccio di usare $split[Ubount($split)-1], i altri elementi della array tranne il 0 contengono pezzi della string, perciò se li usi come numero di elemento per la array probabilmente ti darà l'errore di range exceed
 
Top
Darkprince97
CAT_IMG Posted on 6/1/2011, 11:19     +1   -1




bella,bravo master *.*
 
Top
xMasteRx
CAT_IMG Posted on 6/1/2011, 11:20     +1   -1




grazie ^^
 
Top
3ad_Pr0grammer
CAT_IMG Posted on 6/1/2011, 11:26     +1   -1




@master: Ma tu con le GDI sei un mostro...
 
Top
Semaphore
CAT_IMG Posted on 29/1/2011, 08:52     +1   -1




Bravo!
 
Top
xMasteRx
CAT_IMG Posted on 29/1/2011, 16:32     +1   -1




LoL grazie
comunque ora dovrei farmi la funzione che ho postato che modifica le matrici delle immagini da capo tanto per esercitarmi però ho ancora la pigrizia XD
 
Top
xMasteRx
CAT_IMG Posted on 25/4/2011, 22:20     +1   -1




ho aggiornato la funzione
 
Top
Marduk
CAT_IMG Posted on 25/4/2011, 22:34     +1   -1




wuaaaaaaaaa master sai quanto è che non la vedevo?? La facesti per me :D cmq cos'hai aggiornato?
 
Top
xMasteRx
CAT_IMG Posted on 25/4/2011, 23:10     +1   -1




xD avevo provato a ridimensionare .ico con quella però le GDI+ hanno soltanto decodificatori per il codec ICO, e non i codificatori, perciò legge il file, ridimensiona però non salva, quindi se provi a ridimensionare una icona ti ritorna una immagine JPEG xD
 
Top
Marduk
CAT_IMG Posted on 26/4/2011, 01:05     +1   -1




CITAZIONE (xMasteRx @ 26/4/2011, 00:10) 
xD avevo provato a ridimensionare .ico con quella però le GDI+ hanno soltanto decodificatori per il codec ICO, e non i codificatori, perciò legge il file, ridimensiona però non salva, quindi se provi a ridimensionare una icona ti ritorna una immagine JPEG xD

lol
 
Top
18 replies since 5/1/2011, 03:00   599 views
  Share