/// <summary>
/// 居中缩放图像
/// </summary>
/// <param name="src">源</param>
/// <param name="dest">目标</param>
public static void ImageScale(Bitmap src, Bitmap dest)
{if (src == null || dest == null)throw new ArgumentNullException();double srcScale;double destScale;srcScale = (double)src.Width / src.Height;destScale = (double)dest.Width / dest.Height;//计算长宽比using (Graphics g = Graphics.FromImage(dest)){g.CompositingQuality = CompositingQuality.HighQuality;g.SmoothingMode = SmoothingMode.HighQuality;if (srcScale - destScale >= 0 && srcScale - destScale <= 0.001){//长宽比相同g.DrawImage(src, new Rectangle(0, 0, dest.Width, dest.Height), new Rectangle(0, 0, src.Width, src.Height), GraphicsUnit.Pixel);}else if (srcScale < destScale){//源长宽比小于目标长宽比,源的高度大于目标的高度double newHeight;newHeight = (double)dest.Height * src.Width / dest.Width;g.DrawImage(src, new Rectangle(0, 0, dest.Width, dest.Height), new Rectangle(0, (int)((src.Height - newHeight) / 2), src.Width, (int)newHeight), GraphicsUnit.Pixel);}else{//源长宽比大于目标长宽比,源的宽度大于目标的宽度double newWidth;newWidth = (double)dest.Width * src.Height / dest.Height;g.DrawImage(src, new Rectangle(0, 0, dest.Width, dest.Height), new Rectangle((int)((src.Width - newWidth) / 2), 0, (int)newWidth, src.Height), GraphicsUnit.Pixel);}}

C# 图像居中缩放(自动裁剪保证图像不被压扁或变长)相关推荐

  1. java drawimage 缩放_H5CanvasAPI中drawImage(图像进行缩放或裁剪)的使用实例

    这篇文章主要介绍了HTML5 Canvas API中drawImage()方法的使用实例,drawImage()方法主要用来对图像进行缩放或裁剪,文中给出了其坐标及相关参数的用法,需要的朋友可以参考下 ...

  2. Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符)

    Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符) 目录

  3. 【Python+OpenCV 图像的缩放和裁剪】

    Python+OpenCV 图像的缩放和裁剪 代码部分 实现效果 代码部分 import cv2 import numpy as npimg = cv2.imread("Photos/1.b ...

  4. 【C#】C#实现鼠标滚轮的图像居中缩放

    [fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处]   最近接触了一下C# 的内容,遇到一个需求,就是关于图像的的缩放.查找了网上的一些资源, ...

  5. php 缩放再裁剪,10.4 图像缩放和裁剪技术

    上一章我们学习了图片的水印技术,水印技术和我们这一章要学习到的缩放.裁剪技术基本一致,只不过使用的函数发生了一点点变化. 常用的两个函数如下: | 函数名 | 函数说明 | | -- | -- | | ...

  6. 【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)

    [OpenCV 例程200篇]30. 图像的缩放(cv2.resize) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新 ...

  7. MATLAB图像平移、旋转、缩放、裁剪

    版本: MATLAB R2019a 目录 (一)图像平移 (二)图像旋转 1.图像尺寸不变 2.图像信息不丢失 (三)图像缩放 (四)图像裁剪 (一)图像平移 使用MATLAB自带函数 transla ...

  8. html自动裁剪图片宽度,html - CSS显示调整大小和裁剪的图像

    html - CSS显示调整大小和裁剪的图像 我想显示具有一定宽度和高度的URL中的图像,即使它具有不同的大小比例.所以我想调整大小(保持比例),然后将图像剪切到我想要的大小. 我可以用html ba ...

  9. R语言ggplot2可视化指定保存到pdf的图像的具体尺寸、保证缩放的一致性:使得绘图元素(文本、点大小等)在设计上都具有相同的绝对大小、设置全局数据点大小、主题格式、设置图像保存的具体尺寸

    R语言ggplot2可视化指定保存到pdf的图像的具体尺寸.保证缩放的一致性:使得绘图元素(文本.点大小等)在设计上都具有相同的绝对大小.设置全局数据点大小.主题格式.设置图像保存的具体尺寸 目录

最新文章

  1. Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
  2. HDU 2157 How many ways?? 临接矩阵+快速幂
  3. 使用 Cockpit 方便地管理容器
  4. HH SaaS电商系统的线下服务商品库存和采购设计
  5. FPGA复位激励编写(方法二)
  6. C# 控制台 打印输出
  7. 斯威夫特山地车_斯威夫特弦乐
  8. Access优已成忧,一年后,还是离开了秋色园了
  9. SAP FICO 第三节 BDC和LTMC导入S4财务科目
  10. 软件测试的模式(一、)
  11. 卸载 make install 编译安装的软件
  12. 小米路由器3G建站折腾笔记4 - 安装opkg和onmp
  13. Echo命令和Export命令
  14. 选择二极管要考虑哪些点?
  15. 计算机网络逻辑类故障实例,逻辑故障计算机网络论文
  16. 速卖通平台的未来在于走品牌化道路
  17. 计算机音乐数字乐谱牵丝戏,天谕手游牵丝戏乐谱代码是什么-天谕手游牵丝戏乐谱代码分享_快吧手游...
  18. LeetCode Java刷题笔记—876. 链表的中间结点
  19. Office 365系列(5)------IMAP Migrate 搬迁方式至O365上来方法及步骤总结
  20. 基于Vue.js和Node.js的个人网盘系统——科技立项中期成果

热门文章

  1. 学生信息管理系统(Python)完整版
  2. 米尔科技zynq利用MIO操作LED灯的linux驱动
  3. Improving person re-identification by attribute and identity learning[reading notes]
  4. 软件构造 课堂笔记5
  5. Activiti6.0 学习笔记(2)-查询历史任务
  6. Neovim开发Golang示例
  7. jks cer 证书生成
  8. 高精度气压传感器BMP280代码与解析
  9. Jessica‘s Reading Problem(尺取法)
  10. 启动mysql数据库是红色_mysql启动故障