前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VFP使用柯达控件控制扫描仪,解决导出文件体积过大的问题

VFP使用柯达控件控制扫描仪,解决导出文件体积过大的问题

作者头像
加菲猫的VFP
发布2022-02-17 09:16:08
5830
发布2022-02-17 09:16:08
举报
文章被收录于专栏:加菲猫的VFP

猫猫在做扫描仪控制的时候,使用的柯达扫描控件,这个控件控制扫描仪非常实用,还带有图片编辑的功能,但问题也有,就是导出的图片体积太小了。

我使用的是MYIMG.FLL,结果发现中能修改长度与宽度,图片长宽改太小,文件体积是够用了,但是图片看不清了。

研究了一下,发现图片的大小,不仅仅取决于图片的长度与宽度,分辨率也很关键。分辨率也就是DPI,我们常用的网页上的图片DPI是72,PHOTOSHOP默认也是72。

PS默认画布

扫描仪却是200-300DPI,所以造成文件体积巨大,MYIMG只能实现获取DPI,不能修改。

经行者孙指点,拿到了这样的函数。

代码语言:javascript
复制
Function saveimage2(openfile As String,savefile As String)

   lqEncoderClsID_BMP=0h00F47C55041AD3119A730000F81EF32E &&BMP
   lqEncoderClsID_JPG=0h01F47C55041AD3119A730000F81EF32E &&JPG
   lqEncoderClsID_GIF=0h02F47C55041AD3119A730000F81EF32E &&GIF
   lqEncoderClsID_TIF=0h05F47C55041AD3119A730000F81EF32E &&TIF
   lqEncoderClsID_PNG=0h06F47C55041AD3119A730000F81EF32E &&PNG
   Declare Long GdipLoadImageFromFile In GDIPlus.Dll String cFile, Long @ nativeImage
   Declare Long GdipSaveImageToFile In GDIPlus.Dll Long nativeImage, String cFile, ;
      String EncoderClsID, String EncoderParameters
   Declare Long GdipDisposeImage In GDIPlus.Dll Long nativeImage
   lcInputFile=Strconv(openfile+Chr(0),5)
   lcOutputFile=Strconv(savefile+Chr(0),5)
   lnImage=0
   GdipLoadImageFromFile(lcInputFile,@lnImage)
   GdipSaveImageToFile(lnImage, lcOutputFile, Evaluate('lqEncoderClsID_'+Upper(Justext(savefile))), Null)
   GdipDisposeImage(lnImage)
   Erase &openfile
Endfunc

将柯达控件处理过的图片,用这个函数再保存一下,完美解决文件体积过大的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档