You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:52:17