如何使用C#代码将矩形图片处理为水平分隔的半图半空白图片
C#实现普通图片转为水平半图半空白样式的方法
要把普通矩形图片改成上下半分、上半是原图下半空白的效果,你可以用下面的C#代码实现,核心思路是基于原图创建新画布,只绘制上半部分,剩下的区域留白:
private Bitmap ConvertToHalfImage(Image originalImage, Color blankColor = default) { // 创建和原图尺寸一致的新位图 Bitmap resultBitmap = new Bitmap(originalImage.Width, originalImage.Height); // 默认空白色为白色 if (blankColor == default) { blankColor = Color.White; } using (Graphics g = Graphics.FromImage(resultBitmap)) { // 先填充整个画布为指定空白色 g.Clear(blankColor); // 计算要保留的上半部分高度 int halfHeight = originalImage.Height / 2; // 绘制原图的上半部分到新图对应区域 g.DrawImage( originalImage, new Rectangle(0, 0, originalImage.Width, halfHeight), // 新图的目标绘制区域 new Rectangle(0, 0, originalImage.Width, halfHeight), // 原图的截取区域 GraphicsUnit.Pixel ); } return resultBitmap; }
代码说明
- 先创建和原图尺寸完全一致的
Bitmap,保证最终输出图的尺寸和原图匹配 - 用
g.Clear()预先填充整个画布为指定的空白颜色(默认白色,也可以传入其他颜色比如透明色Color.Transparent) - 通过
halfHeight计算出原图要保留的上半部分高度,再用DrawImage的重载版本精准将原图上半部分绘制到新图的对应位置,下半区域就会保持填充的空白色
和你提供的合并代码的区别
你给出的MergeImages是横向拼接两张独立图片的逻辑,而当前需求是对单张图片做纵向裁剪+留白处理,不需要拼接第二张图,只需要在新画布上绘制原图的一部分即可。
内容的提问来源于stack exchange,提问作者Cp Support
相关产品推荐
相关产品推荐

