标题:vfp 如何批量更改照片大小
只看楼主
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
得分:0 
好复杂啊
2013-09-10 09:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
不肯逐行代码弄懂它,确实很复杂。等吧,现成的总会有人给的。

授人以渔,不授人以鱼。
2013-09-10 11:14
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
10楼的代码测试很灵光,一句一句慢慢学吧

谢谢啦

只求每天有一丁点儿的进步就可以了
2013-09-10 17:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用wengjl在2013-9-10 17:20:16的发言:

10楼的代码测试很灵光,一句一句慢慢学吧

谢谢啦
这才是正确的学习态度。

坚守VFP最后的阵地
2013-09-11 10:19
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
得分:0 
水平比较差正在慢慢学习
2013-09-11 12:08
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
10楼的代码在VFP6下提示:
PRIVATE pSourceFileNAme,pNewFileNAme,nWidth,nHeight  处找不到parameters 语句?咋办?
2013-09-11 14:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用sylknb在2013-9-11 14:42:07的发言:

10楼的代码在VFP6下提示:
在PRIVATE pSourceFileNAme,pNewFileNAme,nWidth,nHeight  处找不到parameters 语句?咋办?
程序代码:
*VFP6.0代码
*更改图片尺寸的大小
=resizeimage([f:\yyrj\3.jpg],[f:\yyrj\31.jpg],400,300)
Declare INTEGER ShellExecute IN shell32;
    INTEGER hwnd, STRING lpOperation,;
    STRING lpFile, STRING lpParameters,;
    STRING lpDirectory, INTEGER nShowCmd
= ShellExecute (0, [open], [f:\yyrj\3.jpg],[],[], 3) && 原图
=INKEY(2) && 等待2秒钟再查看新图
= ShellExecute (0, [open], [f:\yyrj\31.jpg],[],[], 3) && 新图

*******************************************
*算法制作:行者孙(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

坚守VFP最后的阵地
2013-09-11 14:59
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
上述代码是改为400,300,原始照片是150X200,用上述程序后变成400X300。


150X200                       400X300
现在我要把400X300改为成150x200,倒改过去。
=resizeimage([f:\yyrj\3.jpg],[f:\yyrj\31.jpg],150,200)


程序结果:是一片黑,没有人像。不知何处还要修改代码?请明示。

2013-09-11 16:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
文件名改了吗

坚守VFP最后的阵地
2013-09-11 16:08
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
sdta:已介决了,谢谢!太热心了。不愧是班主。
2013-09-11 16:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-420322-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097159 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved