VFP利用GDI来处理图片,已经不是一件太难的事了。GdiPlus类就是专门来干这事的,有关其属性等请参考其它资料。下面将处理图片缩放及分辨率的代码示例贴出来。这些代码都是很久以前的了,由于新冠宅家无事想起来,便转出来。

Local lcFile_S, lcFile_T, lnW_T, lnH_T, lnXDpi_T, lnYDpi_T

m.lcFile_S = 'D:\Temp\Source.jpg'
m.lcFile_T = 'D:\Temp\Target.jpg'

m.lnW_T = 160       && 目标图宽、高度
m.lnH_T = 240
m.lnXDpi_T = 72     && 目标图分辨率
m.lnYDpi_T = 72

Set Classlib To "_GDIPlus.Vcx" Additive

oGraphics=CreateObject("gpGraphics")      && 创建工作图像

oImage=CreateObject("gpImage")            && 源图
oImage.CreateFromFile(m.lcFile_S)         && 从源图创建
m.lnW = oImage.ImageWidth                 && 宽
m.lnH = oImage.ImageHeight                && 高
m.lnXDpi = oImage.HorizontalResolution    && 水平分辨率
m.lnYDpi = oImage.VerticalResolution      && 垂直分辨率

oBitMap=CreateObject("gpBitMap")          && 目标图
oBitMap.Create(m.lnW_T, m.lnH_T)          && 按目标图大小创建

oGraphics.CreateFromImage(oBitMap)               && 工作图像按目标图建立
oBitMap.SetResolution(m.lnXDpi_T, m.lnYDpi_T)    && 设置目标图分辨率

oGraphics.DrawImageScaled(oImage, 0, 0, m.lnW_T, m.lnH_T)    && 源图按指定矩形区域缩放

m.lnQuality = 90  && 100                  && 图片保存质量
oBitMap.SaveToFile(m.lcFile_T, oImage.GetEncoderCLSID("image/jpeg"), "quality="+Transform(m.lnQuality))    && 按源文件类型保存至目标文件

Release oBitMap    && 释放
Release oImage
Release oGraphics

Release Classlib _GdiPlus

VFP9利用_GdiPlus类处理图片分辨率及缩放的更多相关文章

  1. 利用File类过滤器列出目录下的指定目录或文件

    需求:列出d盘下的全部txt文件 实现方法:利用File类的过滤器功能 package com.test.common.util; import java.io.File; import java.i ...

  2. php利用smtp类轻松的发送电子邮件

    当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你! php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题.本博客后台,当博主回复 ...

  3. Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法:

    Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法: ------------------------------------------------------------ ...

  4. 一个利用pojo类从前端页面request中获取参数的小框架~

    写之前不知道Spring已经实现这样的功能,所以傻傻的写了这个东西! 实现原理挺有趣的在此记录一下.从去年十月参加java开发以来自己终于有了点小进步. 好开心. 解决问题(详解):前端form表单提 ...

  5. c#利用ApplicationContext类 同时启动双窗体的实现

    Application类(位于System.Windows.Forms命名空间)公开了Run方法,可以调用该方法来调度应用程序进入消息循环.Run方法有三个重载 1.第一个重载版本不带任何参数,比较少 ...

  6. Flex中如何利用FocusManager类的setFocus函数设置TextInput的焦点的例子

    参考:https://blog.csdn.net/liruizhuang/article/details/5876455 <?xml version="1.0" encodi ...

  7. java翻译到mono C#实现系列(4) 利用CountDownTimer类实现倒计时功能 mono版

    群里的朋友问利用CountDownTimer类实现倒计时功能怎么实现,我就百度了,参考http://blog.csdn.net/qq344429461/article/details/7521361写 ...

  8. 简单的纯css重置input单选多选按钮的样式--利用伪类

    由于input单选多选的原生样式通常都不符合需求,所以在实现功能时通常都需要美化按钮 html <input type="radio" /> <input typ ...

  9. 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤

    项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...

随机推荐

  1. Fibnoccia 数列简单题

    In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, ...

  2. NameError:name ‘xrange’ is not defined

    原因: 在Python 3中,range()与xrange()合并为range( ). 我的python版本为python3.5. 解决办法: 将xrange( )函数全部换为range( ).

  3. Asp.Net Core 已支持 gRPC-Web !!

    grpc-dotnet 项目在 PR #695 完成了 ASP.NET Core 服务与 .NET Core gRPC 客户端的 gRPC-Web 实现. 虽然目前还是实验性项目,但是并不阻碍我们为之 ...

  4. matplotlib 条形图

    一.特点 离散数据,数据之间没有直接的关系 二.分类 1.垂直条形图 bar(x, height, width=0.8) # x 为x轴 # height 为y轴 # width 为 条形图的宽度 例 ...

  5. 3种基础的 REST 安全机制

    安全是 RESTful web service 的基石,我们主要讨论以下3种主要的方法: Basic authentication Oauth 2.0 Oauth 2.0 + JWT 1. Basic ...

  6. poj-1753题题解思路

    今天天气很好! 首先题意是这样的:: 翻盖游戏是在一个长方形的4x4场上进行的,其16个方格中的每一个都放置了双面的棋子.每一块的一边是白色的,另一边是黑色的,每一块都是躺着的,要么是黑色的,要么是白 ...

  7. pta 6-7 统计某类完全平方数 (20分)

    6-7 统计某类完全平方数 (20分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ...

  8. 分布式缓存Redis的持久化方式RDB和AOF

    一.前言 Redis支持两种方式的持久化,RDB和AOF.RDB会根据指定的规则“定时”将内存中的数据存储到硬盘上,AOF会在每次执行命令后将命令本身记录下来.两种持久化方式可以单独使用其中一种,但更 ...

  9. GP工作室—系统设计

    团队作业第二次作业--系统设计 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对项目软件进行更为详细的系统性设计 按照本游戏的设计要求 ...

  10. mysql数据库的备份与数据恢复

    一.定时备份数据库  前段时间工作中搭建了HttpRunnerManager的接口自动化测试平台,由于平台中没有提供用例下载的功能及权限管理功能,自己也不会写前端,于是就想了办法,那就是备份数据库,如 ...