zoukankan      html  css  js  c++  java
  • VFP9利用_GdiPlus类处理图片分辨率及缩放

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

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

    m.lcFile_S = 'D:TempSource.jpg'
    m.lcFile_T = 'D:TempTarget.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

  • 相关阅读:
    str_replace函数的使用规则和案例详解
    phpqrcode.php 生成二维码图片用于推广
    常用的正则表达式验证
    Java:原生javaWeb下载pdf文件
    设计模式:七大原则
    Spring Boot:整合Hikari+Oracle+p6spy
    Spring Boot:开启全局事务
    Java8:按照对象的属性,对List集合分组
    SpringMVC统一异常处理
    JSR303校验的基本使用和结合AOP使用
  • 原文地址:https://www.cnblogs.com/hnllhq/p/12286649.html
Copyright © 2011-2022 走看看