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

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

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

相关推荐
almighty277 天前
C# WinForm分页控件实现与使用详解
c#·winform·分页控件·c#分页·winform分页
界面开发小八哥15 天前
DevExpress WinForms中文教程:Data Grid - Excel样式的自定义过滤器对话框
ui·.net·excel·界面控件·winform·devexpress·ui开发
Crazy Struggle1 个月前
告别手动更新!WinForm 应用轻松集成自动升级功能 (HHUpdateApp)
c#·winform·自动更新
LZQqqqqo1 个月前
WinForm 中 ListView 控件的实战应用与功能拓展
开发语言·microsoft·c#·winform
LZQqqqqo1 个月前
WinForm 对话框的 Show 与 ShowDialog:阻塞与非阻塞的抉择
服务器·windows·microsoft·winform
weixin_447103581 个月前
winform中的listbox实现拖拽功能
c#·winform
R-G-B1 个月前
【28】C# WinForm入门到精通 ——多文档窗体MDI【属性、方法、实例、源码】【多窗口重叠、水平平铺、垂直平铺、窗体传值】
c#·winform·多文档窗体mdi·多窗口重叠·水平平铺·垂直平铺·窗体传值
Crazy Struggle3 个月前
.NET 8 gRPC 实现高效100G大文件断点续传工具
文件上传·winform·.net 8.0
开箱测评小汪3 个月前
WinForms视频播放开发实战指南
winform
刚子编程3 个月前
C# WinForms 实现打印监听组件
开发语言·c#·winform·打印监听组件