Graphics.DrawImage绘制的图像变大的原因分析及解决

 更新时间:2021年11月15日 09:36:11   作者:yimi_tianjin  
这篇文章主要介绍了Graphics.DrawImage绘制的图像变大的原因分析及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Graphics.DrawImage绘制的图像变大

原因分析

DrawImage是设备相关的函数,换言之就是,DrawImage会把屏幕的参数带上,所以,它绘制图像的DPI基本都是96。而我的图片是72DPI的。

例如,假定一个 Image 对象的宽度为 216 像素而存储的水平分辨率值为 72 点/英寸。因为 216 除以 72 等于 3,所以 DrawImage 将缩放该图像,使其在 96 点/英寸的分辨率下的宽度为 3 英寸。也就是说,DrawImage 将显示一个宽度为 96x3 = 288 像素的图像。

解决方案

1:graphics.DrawImage(image, 0, 0, image.Width, image.Height) ;//绘制时加上原图的宽度和高度

2: image.SetResolution(96, 96) ;//设置SetResolution,使其按96 点/英寸的分辨率显示

C#Graphics.DrawImage的一些问题

今天需要把一些小图(如125*100)放到大图(1024*768)中,然后用到了Graphics.DrawImage这个函数,开始使用的是DrawImage(Image image, Point point)。

查看结果的时候发现极少数的小图插入以后变大了,调试以后发现是C#函数的问题。

改用DrawImage(Image image, Rectangle rect)问题就解决了,可能是C#在计算图像大小的时候存在错误。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#向图片添加水印的两种不同场景与解决方法

    C#向图片添加水印的两种不同场景与解决方法

    这篇文章给大家介绍了两种大家可能需要的功能,利用C#实现不同需求的向图片添加水印的方法,文章通过效果图和示例代码介绍的很详细,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 详解C#编程中构造函数的使用

    详解C#编程中构造函数的使用

    这篇文章主要介绍了详解C#编程中构造函数的使用,是C#入门学习中的基础知识,需要的朋友可以参考下
    2016-01-01
  • C#异常处理的一些经验和技巧

    C#异常处理的一些经验和技巧

    本文是异常处理经验性的文章,其实跟C#关系也不大。比较适合刚刚熟悉异常语法,而缺乏实战的读者。当然,经验老练的读者也可指出不足、给予意见、补充说明,一起完善文章,分享更多知识与经验
    2014-03-03
  • webBrowser执行js的方法,并返回值,c#后台取值的实现

    webBrowser执行js的方法,并返回值,c#后台取值的实现

    下面小编就为大家带来一篇webBrowser执行js的方法,并返回值,c#后台取值的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • C#开发Winform实现学生管理系统

    C#开发Winform实现学生管理系统

    这篇文章介绍了C#开发Winform实现学生管理系统的项目案例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#实现平衡查找树

    C#实现平衡查找树

    本文详细讲解了C#实现平衡查找树的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • WinForm实现仿视频播放器左下角滚动新闻效果的方法

    WinForm实现仿视频播放器左下角滚动新闻效果的方法

    这篇文章主要介绍了WinForm实现仿视频播放器左下角滚动新闻效果的方法,涉及WinForm窗口滚动字幕设置的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 浅谈C#设计模式之开放封闭原则

    浅谈C#设计模式之开放封闭原则

    这篇文章主要介绍了浅谈C#设计模式之开放封闭原则,需要的朋友可以参考下
    2014-12-12
  • C#实现屏幕拷贝的方法

    C#实现屏幕拷贝的方法

    这篇文章主要介绍了C#实现屏幕拷贝的方法,实例分析了两种常用的屏幕拷贝实现技巧,需要的朋友可以参考下
    2015-06-06
  • C#使用代码实现春晚扑克牌魔术

    C#使用代码实现春晚扑克牌魔术

    这篇文章主要为大家详细介绍了C#如何使用代码实现龙年春晚扑克牌魔术(守岁共此时),文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-02-02

最新评论