gpt4 book ai didi

c# - 在 C# 中为图像添加页脚

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:10 24 4
gpt4 key购买 nike

我正在使用 GetUserMedia API 捕捉图像并将其绘制到 Canvas 上。使用 Canvas 的 toDataURL() 我得到了“ImageUrl”。 url 保存为 png 图像到本地文件。我正在寻找的是,在保存图像之前,在图像底部(而不是图像上方)添加一些关于图像的评论,如页脚。我有以下代码。谁能建议我如何在 C# 中执行此操作。

     imageByte= Convert.FromBase64String(ImageUrl);
using (var streamBitmap = new MemoryStream(imageByte))
{
using (var img = Image.FromStream(streamBitmap))
{
img.Save(localPath);

}
}

最佳答案

您可以创建比原始图像更高的新位图,以适应下面的页脚。接下来将原始图像和页脚复制到该位图中并保存新位图。

方法是这样的(假设页脚宽度 <= 图片宽度):

public Bitmap AppendImageFooter(System.Drawing.Image bmp, System.Drawing.Image footer)
{
//Create new image that will be bigger then original image to make place for footer
Bitmap newImage = new Bitmap(bmp.Height+footer.Height,bmp.Width);

//Get graphics from new Image and copy original image and next footer below
Graphics g = Graphics.FromImage(newImage);
g.DrawImage(bmp, new Point(0, 0));
g.DrawImage(footer, new Point(0, bmp.Height));
g.Dispose();

return newImage;
}

你可以在这个地方把它放在你的代码中:

var footer = Image.FromFile("path_to_your_footer.png");      
imageByte= Convert.FromBase64String(ImageUrl);
using (var streamBitmap = new MemoryStream(imageByte))
{
using (var img = Image.FromStream(streamBitmap))
{
var imageWithFooter = AppendImageFooter(img, footer);
imageWithFooter.Save(localPath);

}
}

编辑回复评论中的其他问题:

您可以在运行时构建页脚。下面是示例代码,当然你可以画任何你喜欢的风格:

public Bitmap AppendImageFooter(System.Drawing.Image bmp, string text)
{
//Create new image that will be bigger then original image to make place for footer
Bitmap newImage = new Bitmap(bmp.Height+200,bmp.Width);

//Get graphics and copy image and below the footer
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(bmp, new Point(0, 0));
g.FillRectangle(new SolidBrush(Color.Black), 0, bmp.Height, bmp.Width, 200);
g.DrawString(text, new Font("Arial", 14), new SolidBrush(Color.White), 20, bmp.Height + 20);
//Anything else you like, circles, rectangles, texts etc..
g.Dispose();

return newImage;
}

关于c# - 在 C# 中为图像添加页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com