文档章节

GDI+ 学习记录(26): 显示图像 - Image

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 600
阅读 9
收藏 0
点赞 0
评论 0
//显示图像
var
  g: TGPGraphics;
  img: TGPImage;
begin
  g := TGPGraphics.Create(Self.Canvas.Handle);

  img := TGPImage.Create('c:\temp\x.jpg');

  g.DrawImage(img,10,10); {参数2、3是坐标}

  img.Free;
  g.Free;
end;

 
 
 
 
 

 

 

  
//按标准的高度与宽度显示图像 var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\x.jpg'); g.DrawImage(img, 10, 10, img.GetWidth, img.GetHeight); img.Free; g.Free; end;
//按指定高度与宽度显示图像 var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\x.jpg'); g.DrawImage(img, 10, 10, 100, 200); img.Free; g.Free; end;
//略缩图 var g : TGPGraphics; img, imgSmall: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img:= TGPImage.Create('c:\temp\x.jpg'); imgSmall := img.GetThumbnailImage(48, 60, nil, nil); g.DrawImage(imgSmall, 10, 10, imgSmall.GetWidth, imgSmall.GetHeight); img.Free; imgSmall.Free; g.Free; end;
//图片平行四边形变换 var g: TGPGraphics; img: TGPImage; const pts: array[0..2] of TGPPoint = ((x:300; y:120), (x:210; y:200), (x:350; y:230)); begin g := TGPGraphics.Create(Canvas.Handle); img:= TGPImage.Create('c:\temp\x.jpg'); g.DrawImage(img, 0, 0); {这是原始图片} g.DrawImage(img, PGPPoint(@pts), 3); {反复测试后, 感悟如下: 1、只需要 3 个点来控制图片, 不能多或少. 2、点 1 控制右上角; 点 2 控制左上角; 点 3 控制右下角. 3、因为是平行四边形, 所以剩下的左下角的点(就是右上角的对角点)程序就可以算得出来了. } img.Free; g.Free; end;
//图像缩放时的算法比对 var g: TGPGraphics; img: TGPImage; w, h: UINT; begin g := TGPGraphics.Create(Canvas.Handle); img:= TGPImage.Create('c:\temp\x.jpg'); w := img.GetWidth; h := img.GetHeight; g.DrawImage(img, MakeRect(10, 10, w, h), 0, 0, w, h, UnitPixel); g.SetInterpolationMode(InterpolationModeNearestNeighbor); g.DrawImage(img, MakeRect(10, 250, 0.6*w, 0.6*h), 0, 0, w, h, UnitPixel); g.SetInterpolationMode(InterpolationModeHighQualityBilinear); g.DrawImage(img, MakeRect(150, 250, 0.6*w, 0.6*h), 0, 0, w, h, UnitPixel); g.SetInterpolationMode(InterpolationModeHighQualityBicubic); g.DrawImage(img, MakeRect(290, 250, 0.6*w, 0.6*h), 0, 0, w, h, UnitPixel); img.Free; g.Free; end;
缩放或旋转图像时的算法选项:

Delphi 微软 说明
InterpolationModeBicubic Bicubic 指定双三次插值法。不进行预筛选。将图像收缩为原始大小的 25% 以下时,此模式不适用。
InterpolationModeBilinear Bilinear 指定双线性插值法。不进行预筛选。将图像收缩为原始大小的 50% 以下时,此模式不适用。
InterpolationModeDefault Default 指定默认模式。
InterpolationModeHigh High 指定高质量插值法。
InterpolationModeHighQualityBicubic HighQualityBicubic 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。
InterpolationModeHighQualityBilinear  HighQualityBilinear  指定高质量的双线性插值法。执行预筛选以确保高质量的收缩。
InterpolationModeInvalid Invalid 等效于 QualityMode 枚举的 Invalid 元素。
InterpolationModeLow Low 指定低质量插值法。
InterpolationModeNearestNeighbor NearestNeighbor 指定最临近插值法。


本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017604.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
VC实现多格式图像的转换

色彩鲜艳漂亮的高品质图像,一个个形象生动的Windows图标,高速运动、活灵活现的三维动画,这些无一不显示出程序设计者的艺术才华。在程序设计中,图像处理已经成为每个程序员的必修课。 在V...

余二五 ⋅ 2017/11/06 ⋅ 0

GDI+图像处理学习笔记——改变图像的透明度

GDI+是WindowsXp和windows Server 2003中的一个子系统,主要用于处理系统的绘制消息。GDI+是GDI的扩展,其继承了GDI的有点并在其基础上进行了改进,包括增加了一些GDI无法绘制的图形函数,同...

晨曦之光 ⋅ 2012/05/23 ⋅ 0

C# WinForm开发系列 - GDI+

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

长征2号 ⋅ 2017/11/14 ⋅ 0

在.net中使用GDI+来提高gif图片的保存画质

//本文章有www.blue1000.com翻译,原文地址http://codebetter.com/blogs/brendan.tompkins/archive/2004/01/26/6103.aspx //尊重他人劳动成果,转载请注明出处。 写程序的时候经常用到gdi+,...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

GDI绘图方法的初步分析

GDI绘图方法的初步分析 此文仅对用GDI绘图进行探讨,不包括其它如DirectDraw、OpenGL等方法。 一、利用设备文本(DC)进行贴图操作针对的图形对象是DDB位图,即HBITMAP句柄 二、贴图操作是只能...

ryany ⋅ 2011/03/22 ⋅ 0

在OpenCV中实现特效之浮雕,雕刻和褶皱

在OpenCV中实现特效之浮雕,雕刻和褶皱 分类: OpenCV2011-05-24 17:18 501人阅读 评论(7) 收藏 举报 下面代码的基础是对图像像素的访问。 实现浮雕和雕刻的代码是统一的,如下 原图为 浮雕效...

晨曦之光 ⋅ 2012/05/28 ⋅ 0

无【英伟达NIPS论文AI脑洞大开】用GAN让晴天下大雨,小猫变狮子,黑夜转白天

【英伟达NIPS论文AI脑洞大开】用GAN让晴天下大雨,小猫变狮子,黑夜转白天 来源:research.nvidia.com 作者:费欣欣 常佩琦 【新智元导读】英伟达最近GAN相关研究和应用方面进展迅猛。在最新...

wotacid ⋅ 2017/12/07 ⋅ 0

GDI Remote 简介

概要 基本的显示驱动工作在单线程模式下,GDI有一个全局锁(光标工作在另一个线程,不在GDI的全局锁范围内)。 GDI | | V Display driver <----> Server--->Client. GDI指令先用标准的软件驱...

xtxb ⋅ 2012/06/09 ⋅ 0

opengl超级宝典笔记——Using Opengl

第二章 使用OpenGL (一)OpenGl 的工作原理 OpenGL是过程式的而非描述性的图形API。开发人员只须规定必要的步骤去实现显示的效果。这些步骤包含了许多OpenGL的命令。这些命令用于绘制许多的...

Mario_Q ⋅ 2013/09/02 ⋅ 0

C#中基于GDI+(Graphics)图像处理系列之任意角度旋转图像

简介 图像旋转功能在实际使用中出现得不多,Image自带RotateFlip方法可以简单的实现90、180等角度的旋转或者翻转,但是如果要实现任意角度的旋转该怎么做?对于一个有经验的同学估计不到半天...

lhtzbj12 ⋅ 2017/01/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部