VFP中如何在备注型字段插入图片文件
VFP9:
&&
1 中“图片”是备注型字段,图片支持多种格式BMP,jpg,GIF,TIF, PNG......
&& 保存图片到备注型字段
LOCAL cfile, cStr
IF !USED('表1')
USE 表1 IN 0
ENDIF
cFile = GETPICT()
IF EMPTY(cFile)
RETURN
ENDIF
SELECT 表1
REPLACE 图片WITH fileTOSTR(cFile) IN 表1
&& 显示图片
thisform.image1.PictureVal = 表1.图片
VFP6 的话,将会很烦,因为没有 FileTOSTR() 函数,所以要调用低级文件函数,又由于 VFP6 image 控件没 PictureVal 属性,所以只能单一支持 BMP 或 jpg 文件显示...
********///
更改图像分辨率(DPI)
实现
:
1、新建立一个位图
2、把新建立的位图设置成需要的分辨率
3、把需要修改的图片写到新文图上
3、输出保存
DECLARE Long GdipBitmapSetResolution IN GDIPLUS.DLL Long nBitmap, Single xdpi, Single ydpi
DECLARE INTEGER GdipLoadImageFromFile IN gdiplus.DLL ;
STRING wfilename, INTEGER @nImage
DECLARE INTEGER GdipSaveImageToFile IN gdiplus.DLL ;
INTEGER nImage, STRING wFilename, STRING qEncoder, INTEGER nEncoderParamsPtr
DECLARE Long GdipDisposeImage IN Gdiplus.dll Long nativeImage
DECLARE INTEGER GdipCreateBitmapFromScan0 IN gdiplus.DLL ;
INTEGER nWidth, INTEGER nHeight, INTEGER nStride,;
INTEGER nPixelFormat,;
STRING @ cScan0, INTEGER @ nImage
DECLARE INTEGER GdipGetImageHeight IN gdiplus;
INTEGER img,;
INTEGER @ imgheight
DECLARE INTEGER GdipGetImageWidth IN gdiplus;
INTEGER img,INTEGER @ imgwidth
DECLARE INTEGER GdipGetImageGraphicsContext IN gdiplus.DLL ;
INTEGER nImage, INTEGER @ nGraphics
DECLARE INTEGER GdipDrawImageRect IN gdiplus.DLL ;
INTEGER nGraphics, INTEGER nImage, SINGLE,SINGLE,SINGLE,SINGLE
*制作:行者孙(QQ 310727570)VFP应用程式算法群(12787940)
STORE 0 TO uHwnd,uHeight,uWidth,nBitmap,nGraphics
lqEncoderClsID_jpg=0h01F47C55041AD3119A730000F81EF32E &&JPG
GDIPLUS_PIXELFORMA T_32bppARGB=0x0026200A
xdpi=300&&水平分辨率
ydpi=300&&垂直分辨率
uPutfile='被修改图片.jpg'
uOutfile='修改后的图片.jpg'
GdipLoadImageFromFile(STRCONV(uPutfile+0h00,5),@uhwnd)
GdipGetImageHeight(uhwnd,@uHeight)
GdipGetImageWidth(uhwnd,@uWidth)
GdipCreateBitmapFromScan0(uWidth,uHeight,0,GDIPLUS_PIXELFORMAT_32bppARGB,0,@ nBitmap)
GdipGetImageGraphicsContext(nBitmap,@nGraphics)
GdipBitmapSetResolution(nBitmap,xdpi,ydpi)
GdipDrawImageRect(nGraphics,uHwnd,0,0,uWidth,uHeight)
GdipSaveImageToFile(nBitmap,STRCONV(uOutfile+0h00,5),lqEncoderClsID_JPG, 0) GdipDisposeImage(uhwnd)
GdipDisposeImage(nBitmap)
*********
如何用VFP判断jpg图片尺寸和分辨率
LOCAL oForm, cImgSize,isw,ish
m.tcfilename=\'btux.jpg\'
m.cImgSize = \'\'
oForm = NEWOBJECT( \'Form\' )
WITH oForm
.AddObject( \'img\', \'Image\' )
WITH .img
TRY &&此循环VFP6.0中不能使用,8.0才有效
.Picture =m.tcFileName
m.cImgSize = TRANSFORM( .Width ) + \'? + TRANSFORM( .Height )
isw=TRANSFORM( .Width )
ish=TRANSFORM( .Height )
CATCH
ENDTRY && TRY…… CATCH…… ENDWITH 是一种循环
ENDWITH
ENDWITH
oForm.release
? \'照片的宽赘撸?+m.cImgSize
以上代码是早几年我在中国VFP论坛提问求得的,当时她给我的是一个自定义函数,我取了我有用的部分,以至现在不是很完整,但可测图片的大小了,分辩率我当时没问,因为我不需要。我不识英语,也不是计算机专业的,只能到此。谢谢