文档章节

如何用 GDI+ 高质量地缩放图片 - 回复 "程序牛" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 160
阅读 8
收藏 0
点赞 0
评论 0

问题来源: http://www.cnblogs.com/del/archive/2010/01/07/1641084.html#1742127

程序使用了 GDI+ 的新接口: http://www.cnblogs.com/del/archive/2009/12/11/1621790.html

uses GdiPlus;

procedure TForm1.Button1Click(Sender: TObject);
const
  Path1 = 'C:\Temp\Test.png';
  Path2 = 'C:\Temp\Test2.png';
var
  Img1,Img2: IGPImage;
  Graphics: IGPGraphics;
begin
  { 打开原图片 }
  Img1 := TGPImage.Create(Path1);

  { 建一个新图片, 假如是缩小一倍 }
  Img2 := TGPBitmap.Create(Img1.Width div 2, Img1.Height div 2, PixelFormat32bppARGB);

  { 获取新图片的绘图表面 }
  Graphics := TGPGraphics.Create(Img2);

  { 设置缩放质量为最高质量 }
  Graphics.InterpolationMode := InterpolationModeHighQualityBicubic;

  { 画过来 }
  Graphics.DrawImage(Img1, 0, 0, Img2.Width, Img2.Height, 0, 0, Img1.Width, Img1.Height, UnitPixel);

  { 保存 }
  Img2.Save(Path2, TGPImageFormat.Png);
end;

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2010/01/07/1641472.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
深度解读 - Windows 7核心图形架构细致分析(转贴)

原帖地址:http://technet.microsoft.com/zh-cn/library/ee921514.aspx 如现在大家所想的那样, Windows7 其实是 Windows Vista 的改进版。 Windows 7 在 Windows Vista 的基础上进行了大量的...

迈克老狼1
2012/12/23
0
0
Windows桌面应用程序(1-2-4-7th) DPI和设备无关的像素

要使用Windows图形进行有效编程,您必须了解两个相关的概念: 每英寸点数(DPI) 设备无关像素(DIP)。 我们从DPI开始。这将需要短暂的绕行排版。在印刷术中,类型的大小以称为点的单位来测量。一点...

qq_37422196
01/12
0
0
android 用matrix 缩放图片后 图片变得模糊

1,手绘一些线条。保存为png格式。 2,打开这个图片。 并将其缩放(缩小到一半)。 3,缩放后发现图片比在无缩放情况下模糊。 问题:在图片缩放时,用matrix.setScale() 来做缩放(将原图缩小...

Carlyle_Lee
2012/12/09
3.5K
1
用C#的GDI+技术生成复杂型彩色验证码

该类是生成一个验证码的类。本人集合了网上大部分的C#关于GDI+的文章进行多次改进,现在已经形成了可在生产环节中使用的验证码。 该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字...

Minho
2012/12/13
0
2
jmagick 缩放gif

各位大侠,求指导,急,jmagick 如何实现动态gif图片的高质量缩放,先行谢过

wuchienchao
2012/02/22
444
0
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0
Android-支持多屏幕-1

原文链接:Supporting Multiple Screens Android运行在许多不同屏幕尺寸(screen size)和密度(screen density)的设备上。对于应用程序,Android系统提供了一致的跨设备开发环境,处理了应用程...

叶大侠
2014/08/24
0
0
关于Direct3D11里汉字显示的一些思考

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/8147234 作者:毛星云 邮箱: happylifemxy@163.com 这篇文章里,浅墨希望与大家一起...

长平狐
2012/11/12
690
0
求一款图片缩放软件或程序(兼容的图片格式越多越好)

项目中需要处理图片压缩,将大图缩放成小图(其实也就是在手机上浏览,图片太大了看不全),使用java程序调用,兼容的图片格式越多越好,压缩效率高、速度快,支持多线程调用,在linux上使用...

anfield
2010/12/07
229
5
Winform 界面开发

小弟在.net Winform 这一块儿工地灰常一般,最近从事相关开发,才发现原来界面制作也是一门很深的学问呀,IDE 自带的控件什么的 几乎都用不了 完全达不到视觉要求 ,一个简单的按钮 在XP经典...

青蛙天涯
2011/10/30
5.6K
10

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
11分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
21分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
26分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
30分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
37分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
41分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
41分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
44分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
47分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部