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
最后放一张合并后的图片:
这样合并后的图片就显示全了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)