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

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

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

相关推荐
PfCoder12 小时前
WinForm真入门(20)——StatusStrip控件解析
开发语言·windows·c#·winform·statusstrip
PfCoder12 天前
C# async / await 用法以及和Task的关系
c#·多线程·winform·async、await
wnety17 天前
C#开发winform调用软键盘
c#·winform
LateFrames17 天前
做【秒开】的程序:WPF / WinForm / WinUI3 / Electron
electron·c#·wpf·winform·winui3·claude code
专注VB编程开发20年18 天前
探讨vs2022在net6框架wpf界面下使用winform控件
framework·.net·wpf·winform·cefsharp·miniblink·geckofx45
时光追逐者20 天前
一款基于 .NET WinForm 开源、轻量且功能强大的节点编辑器,采用纯 GDI+ 绘制无任何依赖库仅仅100+Kb
c#·.net·winform
葛小白122 天前
Winform控件:Chart
c#·winform·chart
LateFrames23 天前
使用 Winform / WPF / WinUI3 / Electron 实现异型透明窗口
javascript·electron·wpf·winform·winui3
LeonDL16824 天前
【通用视觉框架】基于C#+Winform+OpencvSharp开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·winform·opencvsharp·机器视觉软件框架·通用视觉框架·机器视觉框架
Crazy Struggle1 个月前
一行代码快速开发 AntdUI 风格的 WinForm 通用后台框架
.net·winform·antdui