首页 > 编程语言 >C#合成图片显示不全

C#合成图片显示不全

时间:2024-01-31 12:02:40浏览次数:32  
标签:原图 1080 C# 合成 合并 不全 dpi 图片

现象

前段时间用C#写了一个小工具,主要功能是随机读取图片并合成一张长图。最近在使用的时候发现个问题,原图片宽度是1080,合成后的图片宽度也是1080,但是合成后的图片没有显示全,就像下面这样

原图1和原图2:为了方便看到大小我加了红色边框

 

原图的属性信息,宽度都是1080

合成后的图片:

 

合成图片的属性信息,宽度也是1080

但合成的图片和原图比较,右侧明显比原图缺少一部分,原图右侧下方可以看到茶杯,合成的图片右侧看不到茶杯。

问题原因

经过观察,发现是图片的dpi分辨率不同,导致合并后的图片显示不全。原图的dpi是72,合并后的图片dpi是96

解决办法

直接修改代码,在合并图片的时候,先取出原图的dpi,然后赋值给合并后的图片,使其保持一致

#读取图片的dpi
float dpiX = image.HorizontalResolution;
float dpiY = image.VerticalResolution;
#设置合并图片的dpi
Bitmap map = new Bitmap(1080, 2500);//定义画布
map.SetResolution(dpiX, dpiY);//设置图片的dpi

 最后放一张合并后的图片:

这样合并后的图片就显示全了。

标签:原图,1080,C#,合成,合并,不全,dpi,图片
From: https://www.cnblogs.com/xujiecnblogs/p/17998817

相关文章

  • React.ReactNode 和 React.ReactElement ,更推荐使用哪个?
    React.ReactNode和React.ReactElement,更推荐使用哪个?在React中,React.ReactNode和React.ReactElement是不同类型,它们适用于不同的场景:React.ReactNode:类型定义:typeReactNode=ReactChild|ReactFragment|ReactPortal|boolean|null|undefined;描述:这是一......
  • 使用kubectl中的强制删除pod命令
    1.使用kubectl中的强制删除命令kubectldeletepodnginx-nmmp--force--grace-period=02.删除非正常的poda.查询出所有要删除的podNamekubectlgetpo|grepUnknown|awk'{print$1}'b.批量删除kubectldeletepod`kubectlgetpo|grepUnknown|awk'{print$1}'`-......
  • Centos7.6安装Openstack
    1.主机配置关闭防火墙#关闭防火墙systemctlstopfirewalld#开机禁止启动systemctldisablefirewalld关闭selinuxvi/etc/sysconfig/selinux在第7行设置SELINUX=disabledsetenforce0#临时生效,如果忘记设置,后续Httpd服务会因为权限问题无法启动修改主机名hostn......
  • createDelegatingPasswordEncoder只有在spring 5.1.13才能用吗?
    springboot和spring版本对应关系:SpringBoot1.x支持SpringFramework4.x系列,包括4.0、4.1、4.2和4.3等版本。SpringBoot2.x支持SpringFramework5.x系列,包括5.0、5.1和5.2等版本。 下载springboot会一并下载 ......
  • eXeScope 注册机制算法破解
    使用x64dbg进行修改从网上找来一片文章,感觉靠谱,如下---------------------------------------------------------------------------------------第一次看到这个界面还是在十多年前,当时的我并不明白这些数据的含义。现在为它写一篇博客,算是一种纪念吧。用x64dbg加载exescop......
  • 运行bat的情况下,会弹出cmd的黑色窗口。怎么把这个窗口隐藏或者在后台运行
    为了在运行批处理文件(.bat)时隐藏或在后台运行CMD窗口,您可以使用Windows的VBScript来调用这个批处理文件。VBScript可以创建一个无窗口的WScript.Shell对象来运行您的批处理文件,从而避免显示命令提示符窗口。步骤创建VBScript文件:打开记事本或任何文本编辑器。将以下代......
  • R语言平稳性ADF检验、ARCH-LM效应检验分析收盘价收益率数据可视化
    全文链接:https://tecdat.cn/?p=35081数据读取和处理是金融分析中非常重要的一步。为了减少误差,在估计时我们可以对每个交易日的收盘价进行自然对数处理,即对日收益率进行计算。本文通过R软件对金融数据帮助客户进行读取和处理,并进行了收益率波动图、收益率序列的平稳性检验、自相......
  • Oracle DCD和Linux TCP KeepAlive和网络硬件防火墙探讨
     OracleDCD和LinuxTCPKeepAlive和网络硬件防火墙探讨 Oracle的某些会话在超时断开后在警告日志抛出一定量类似如下日志:FriAug1917:51:322022***********************************************************************FatalNIconnecterror12170.VERSIO......
  • 飞桨paddlespeech语音唤醒推理C INT8 定点实现
    前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且均匀,还是用最大值非饱和量化。最大值......
  • 在gin-gonic框架下,gin.context 输出json, 默认会将&转义为\u0026, 怎么将这个转义关
    在gin-gonic中,如果你想要禁止对&等字符进行转义,可以使用gin.Context的PureJSON方法。这个方法允许你自己控制JSON输出,而不会进行字符的转义。以下是一个简单的例子:packagemainimport( "github.com/gin-gonic/gin" "net/http")funcmain(){ router:=gin.Default() ......