C#合成图片显示不全

现象

前段时间用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

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

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

相关推荐
界面开发小八哥5 天前
界面控件DevExpress中文教程:如何PDF图形对象的可见性?
ui·pdf·wpf·界面控件·winform·devexpress
大浪淘沙胡8 天前
Winform实现石头剪刀布小游戏
winform·enum·石头剪刀布
Crazy Struggle8 天前
.NET 多版本 WinForm 开源控件库 SunnyUI
c#·winform·blazor ui组件库·sunnyui
Crazy Struggle14 天前
.NET 多版本兼容的精美 WinForm UI控件库
.net·winform·控件库
界面开发小八哥15 天前
DevExpress WinForms中文教程:Data Grid - 如何自定义绘制?
ui·winform·devexpress·用户界面·c# winform
小白鼠零号16 天前
记录|自建Form窗口,实现消息提示+自动消失
c#·visual studio·winform
界面开发小八哥18 天前
DevExpress WinForms v24.1亮点- TreeList、折叠组件全新升级
.net·界面控件·winform·devexpress·ui开发
小白鼠零号18 天前
记录|Form1中嵌套Form2时的频闪问题解决[不同于常见的三部曲]
c#·visual studio·winform
小码编匠20 天前
.NET 多版本兼容的精美 WinForm UI控件库
ui·.net·winform·realtaiizor·控件库
界面开发小八哥22 天前
DevExpress WinForms中文教程:Data Grid - 如何设置条件格式?
ui·界面控件·winform·devexpress·用户界面