uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ;

var
  Bitmap1: TGPBitmap;
  Bitmap2: TBitmap;
  Graphic: TGPGraphics;
begin
  Bitmap1 := TGPBitmap.Create('test.bmp');  // bmp, gif, jpeg, png...
  Bitmap2 := TBitmap.Create;
  with Bitmap2 do
    begin
      Width := Bitmap1.GetWidth * 2 div 3;  // shrink to 2/3 width
      Height := Bitmap1.GetHeight * 2 div 3;  // shrink to 2/3 height
      PixelFormat := pf32bit;
    end;
  Graphic := TGPGraphics.Create(Bitmap2.Canvas.Handle);
  Graphic.SetInterpolationMode(InterpolationModeHighQualityBicubic);  // bicubic resample
  Graphic.DrawImage(Bitmap1, 0, 0, Bitmap2.Width, Bitmap2.Height);
  Bitmap2.SaveToFile('test_resized.bmp');
  Graphic.Free;
  Bitmap2.Free;
  Bitmap1.Free;
end;

转自:https://bbs.csdn.net/topics/390695373

GDI+缩放图片的更多相关文章

  1. GDI中StretchBlt或Blt缩放图片失真问题

    在用Scrollview控件的缩放图片时,严重失真: 解决方法:dc.SetStretchBltMode(COLORONCOLOR). 参考文章:https://blog.csdn.net/m3728 ...

  2. C#剪切生成高质量缩放图片

    /// <summary> /// 高质量缩放图片 /// </summary> /// <param name="OriginFilePath"&g ...

  3. Android 等比例缩放图片

    // 缩放图片 public static Bitmap zoomImg(String img, int newWidth ,int newHeight){ // 图片源 Bitmap bm = Bi ...

  4. Andorid-如何为你的Android应用缩放图片

    很难为你的应用程序得到正确的图像缩放吗?是你的图片过大,造成内存问题?还是图片不正确缩放造成不良用户体验的结果?为了寻求一个好的解决方案,我们咨询了Andreas Agvard(索尼爱立信软件部门), ...

  5. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  6. IOS 缩放图片常用方法

    /** * 指定Size压缩图片 (图片会压缩变形) * * @param image 原图 * @param size 压缩size * * @return 压缩后的图片 */ -(UIImage* ...

  7. Android拖动和缩放图片

    Android拖动和缩放图片 2014年5月9日 我们在使用应用其中常常须要浏览图片.比方在微信其中.点击图片之后能够对图片进行缩放. 本博客介绍怎样对图片进行拖拽和缩放.这首先要了解Android中 ...

  8. JavaScript等比例缩放图片

    js等比例缩放图片,这个功能非常实用,当网页加载一个尺寸比较大的图片时,往往会把一个网页撑的变形,页面变得很难看,于是我们就想到了用JS去控制超出一定范围的图片,以稳定页面布局,本代码段就是完成了此功 ...

  9. JS实现等比例缩放图片

    JS实现等比例缩放图片 2014-01-19 21:57 by 龙恩0707, 40 阅读, 0 评论, 收藏, 编辑 JS实现等比例缩放图片 有时候我们前端页面只有500×500像素的宽和高的布局, ...

随机推荐

  1. 20155327《Java程序设计》第八周学习总结

    20155327<Java程序设计>第八周学习总结 教材学习内容总结 第12章 进程与线程 进程的完成过程:代码加载.执行至执行完毕 线程:一个进程由多个线程组成. 线程的完成过程:自身的 ...

  2. Velocity学习2

    Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...

  3. 2-7 hash

    1.Hash Hash函数处理流程Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算 ...

  4. Kubernetes学习之路(十一)之Pod状态和生命周期管理

    一.什么是Pod? Pod是kubernetes中你可以创建和部署的最小也是最简的单位.一个Pod代表着集群中运行的一个进程. Pod中封装着应用的容器(有的情况下是好几个容器),存储.独立的网络IP ...

  5. com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\salary-card\target\salary-card-0.0.1-SNAPSHOT.jar!\BOOT-INF\classes!\keystore\login_id_rsa 资源未找到

    com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\sala ...

  6. java实现利用httpclient访问接口

    HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...

  7. Storm 第二章 Storm安装

    1 strom集群规划 Nimbus:hadoop1 zookeeper:hadoop2,hadoop3,hadoop4 supervisor:hadoop5,hadoop6,hadoop7 安装文件 ...

  8. Flutter - Finished with error: FormatException: Bad UTF-8 encoding 0xc3 (at offset 169)

    方案1: 更改项目的Encoding方式 File -> Settings -> Editor,  choose "File Encodings", change Pr ...

  9. list add() 和 addall()的区别

    http://blog.tianya.cn/post-4777591 如果有多个已经被实例化的List 集合,想要把他们组合成一个整体,并且,这里必须直接使用List 自身提供的一个方法List.ad ...

  10. python 中的特殊方法,纠正自己笨笨的记忆

    1. __new__ 和 __init__ 的区别 python 2.x 老式类(默认继承type) class A: pass 老式类中没有__new__类方法(也就是说定义也不会执行,它不是老式类 ...