|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
kmkna1103
註冊時間: 2008-05-08 文章: 119 來自: 台灣
第 1 樓
|
發表於: 星期四 一月 15, 2015 10:23 am 文章主題: 如何變更圖片大小 |
|
|
在上傳圖片時變更成統一的大小,如何實現請教高人指導 |
|
回頂端 |
|
|
kmkna1103
註冊時間: 2008-05-08 文章: 119 來自: 台灣
第 2 樓
|
發表於: 星期四 一月 15, 2015 10:29 am 文章主題: |
|
|
用這方法處理不知道為何圖片都是黑的
代碼: |
*算法制作:行者孙(QQ:310727570)
*******************************************
FUNCTION RESIZEIMAGE
PARAMETERS pSourceFileNAme,pNewFileNAme,nWidth,nHeight
DECLARE INTEGER GdiplusStartup IN gdiplus INTEGER @token, STRING @INPUT, INTEGER OUTPUT
LOCAL hToken, cInput
hToken = 0
cInput = PADR(CHR(1), 16, CHR(0))
GdiplusStartup(@hToken, @cInput, 0)
DECLARE INTEGER GdipLoadImageFromFile IN gdiplus.DLL STRING wFilename, INTEGER @nImage
LOCAL nImage
nImage = 0
GdipLoadImageFromFile(STRCONV(pSourceFileNAme + CHR(0), 5), @nImage)
#DEFINE GDIPLUS_PIXELFORMAT_32bppARGB 0x0026200A
DECLARE INTEGER GdipCreateBitmapFromScan0 IN gdiplus.DLL ;
INTEGER nWidth, INTEGER nHeight, INTEGER nStride;
, INTEGER nPixelFormat, STRING @cScan0, INTEGER @nImage
LOCAL nBitmap, nX, nY
nBitmap = 0
nX = 0
nY = 0
GdipCreateBitmapFromScan0(nWidth, nHeight, 0, GDIPLUS_PIXELFORMAT_32bppARGB, 0, @nBitmap)
DECLARE INTEGER GdipGetImageGraphicsContext IN gdiplus.DLL INTEGER nImage, INTEGER @ nGraphics
LOCAL nGraphics
nGraphics = 0
GdipGetImageGraphicsContext (nBitmap, @nGraphics)
DECLARE INTEGER GdipDrawImageRect IN gdiplus.DLL ;
INTEGER nGraphics, INTEGER nImage, SINGLE,SINGLE,SINGLE,SINGLE
GdipDrawImageRect(nGraphics, nImage, nX, nY, nWidth, nHeight)
LOCAL lcEncoder
lcEncoder = REPLICATE(CHR(0),16)
DECLARE INTEGER CLSIDFromString IN ole32 STRING lpsz, STRING @pclsid
CLSIDFromString(STRCONV("{557CF401-1A04-11D3-9A73-0000F81EF32E}" + CHR(0), 5), @lcEncoder)
DECLARE INTEGER GdipSaveImageToFile IN gdiplus.DLL ;
INTEGER nImage, STRING wFilename, STRING qEncoder, INTEGER nEncoderParamsPtr
ERASE (pNewFileNAme)
DECLARE Long GdipDisposeImage IN Gdiplus.dll Long nativeImage
GdipDisposeImage(nImage)
GdipSaveImageToFile (nBitmap, STRCONV(pNewFileNAme,5) + CHR(0), lcEncoder, 0)
DECLARE INTEGER GdiplusShutdown IN gdiplus INTEGER token
GdiplusShutdown(hToken)
CLEAR DLLS
ENDFUNC
|
|
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 3 樓
|
發表於: 星期四 一月 15, 2015 10:58 am 文章主題: |
|
|
我建議你用 Imagemagick
Imagemagick 是一堆指令的組合,可以直接使用 RUN 去呼叫。
要改變圖片大小,只要用 convert -resize
例如想縮小到 300x200 :
convert demo.png -resize 300x200 demo.jpg
或是縮小一半:
convert demo.png -resize 50% demo.jpg
除了這以外,還有許多功能。 |
|
回頂端 |
|
|
kmkna1103
註冊時間: 2008-05-08 文章: 119 來自: 台灣
第 4 樓
|
發表於: 星期四 一月 15, 2015 11:37 am 文章主題: |
|
|
用你的方法可行,感謝 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|