| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2083 人关注过本帖, 2 人收藏
标题:vfp 如何批量更改照片大小
只看楼主 加入收藏
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
结帖率:82%
收藏(2)
已结贴  问题点数:20 回复次数:36 
vfp 如何批量更改照片大小
vfp 如何批量更改照片大小,数码相机照片如何指更改
搜索更多相关主题的帖子: 数码相机 照片 如何 
2013-09-09 08:59
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
期待高手出现

一般用第三方软件

只求每天有一丁点儿的进步就可以了
2013-09-09 10:37
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
批量改名好弄这个改大小无头绪
2013-09-09 11:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我在本坛发过解决代码,不重复。

授人以渔,不授人以鱼。
2013-09-09 11:56
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
能给个链接不
2013-09-09 12:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你自己看着改吧:

程序代码:
*-------------------------------------
* 将输入图片转换为透明底PNG格式
* 参数:tcFileName -- 输入图片文件名
* 返回:转换成功为真否则为假
*-------------------------------------
FUNCTION Convert_Picture(tcFileName AS Character) AS Boolean
    LOCAL loSourceBitmap AS Object
    LOCAL loTargetBitmap AS Object
    LOCAL loColor AS Object
    LOCAL loGraphics AS Object
   
    IF FILE(tcFileName)
        loSourceBitmap = NEWOBJECT("gpBitmap", "_GDIplus.vcx")
        loSourceBitmap.CreateFromFile(tcFileName)
        loTargetBitmap = NEWOBJECT("gpBitmap", "_GDIplus.vcx")
        loTargetBitmap.Create(loSourceBitmap.ImageWidth, loSourceBitmap.ImageHeight)
        loColor = NEWOBJECT("gpColor", "_GDIplus.vcx")
        loColor.Set(0,0,0,0)                                        && 透明背景
        loGraphics = NEWOBJECT("gpGraphics", "_GDIplus.vcx")
        WITH loGraphics
            .CreateFromImage(loTargetBitmap)
            .Clear(loColor)
            .DrawImageAt(loSourceBitmap, 0, 0)
        ENDWITH
        tcFileName = LEFT(tcFileName, LENC(tcFileName) - 3) + "PNG"
        loTargetBitmap.SaveToFile(tcFileName, "image/png")
        RETURN .T.
    ELSE
        RETURN .F.
    ENDIF
       
ENDFUNC

授人以渔,不授人以鱼。
2013-09-09 12:19
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
这不是改变大小

只求每天有一丁点儿的进步就可以了
2013-09-09 12:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看得懂自然知道怎么改变大小。

授人以渔,不授人以鱼。
2013-09-09 12:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片格式?修改比例?

[ 本帖最后由 sdta 于 2013-9-9 19:16 编辑 ]

坚守VFP最后的阵地
2013-09-09 18:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
程序代码:
*原图片尺寸改变现有的图片尺寸
=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(pSourceFileNAme as String,pNewFileNAme as String,nWidth as Long,nHeight as long)
PRIVATE 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, nWidth, nHeight, 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
用于JPEG格式的图片

[ 本帖最后由 sdta 于 2013-9-9 22:49 编辑 ]

坚守VFP最后的阵地
2013-09-09 22:43
快速回复:vfp 如何批量更改照片大小
数据加载中...
 
   



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

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