Added Thumbnail image support (:don't use it as resizer one).
Usage is:
.ImageConv(sFileFr, sFileTo, ThumbWidth, ThumbHeight)

The third and fourth parameters optional, if omitted, just a plain
converter. If only third parameter is specified, the fourth one will
be calculated appropriately to keep the ratio. E.g.,

.ImageConv(?"...\test.jpg", ?"...\test.png", 96, 96)
will extract and save a 96x96 thumbnail to test.png while
.ImageConv(?"...\test.jpg", ?"...\test.png", 96)
will save 96x72 thumbnail to test.png from the 1024x768 test.jpg.

---------------------- ImageConv.PowerPro ----------------------------
args  sFileFr,sFileTo,nW,nH
local xFileFr,xFileTo,pToken,pImage,nCodecs,nSize,ci,si

dll.call("MultiByteToWideChar|ui ui s i s520 i";;+
,0,0,"sFileFr",-1,"xFileFr",260)
dll.call("MultiByteToWideChar|ui ui s i s520 i";;+
,0,0,"sFileTo",-1,"xFileTo",260)

si=dll.create_array(4,"i",1)
dll.call("gdiplus|GdiplusStartup|ui* a* ui","pToken",si,0)

dll.call("gdiplus|GdipLoadImageFromFile|s ui*","xFileFr","pImage")

if(nW)do
if(!nH)do
local mW,mH
dll.call("gdiplus|GdipGetImageWidth|ui ui*",pImage,"mW")
dll.call("gdiplus|GdipGetImageHeight|ui ui*",pImage,"mH")
nH=nW*mH/mW
endif
local pThumb
dll.call("gdiplus|GdipGetImageThumbnail|ui ui ui ui* ui ui";;+
,pImage,nW,nH,"pThumb",0,0)
dll.call("gdiplus|GdipDisposeImage|ui",pImage)
pImage=pThumb
endif

dll.call("gdiplus|GdipGetImageEncodersSize|ui* ui*","nCodecs","nSize")
ci=dll.create_array(nSize/4+1,"i")
dll.call("gdiplus|GdipGetImageEncoders|ui ui a* b",nCodecs,nSize,ci)

for(local i=0;i<nCodecs;i++)
dll.call("WideCharToMultiByte|ui ui i i s i ui ui";;+
,0,0,ci[19*i+12],-1,"nSize",272,0,0)
if(index(nSize,file.type(sFileTo)))
break
endfor

dll.call("gdiplus|GdipSaveImageToFile|ui s ui ui";;+
,pImage,"xFileTo",ci.get_pointer(19*i+1),0)

dll.call("gdiplus|GdipDisposeImage|ui",pImage)
dll.call("gdiplus|GdiplusShutdown|ui",pToken)
quit
----------------------------------------------------------------------

Sean





Attention: PowerPro's Web site has moved: http://www.ppro.org 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/power-pro/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/power-pro/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to