c# - 如何将位图粘贴到另一个位图并在其底部写入文本?
问题描述
我需要的是创建一个具有更大高度和相同宽度的位图文件的新位图,将位图文件内容粘贴到新位图文件中,并在位图文件的底部写入一个字符串。
这是我当前的代码,我不知道如何在文件底部写/也不将位图的内容粘贴到另一个,感谢您的帮助!:
Bitmap bmp = new Bitmap(filePathSave);
RectangleF rectf = new RectangleF(0, 0, bmp.Width, bmp.Height);
Graphics g = Graphics.FromImage(bmp);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
StringFormat format = new StringFormat()
{
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center
};
g.DrawString("yourText", new Font("Tahoma", 20), Brushes.Black, rectf, format);
// Now save or use the bitmap
bmp.Save($"Temp/{Path.GetFileNameWithoutExtension(filePathSave)}_1.bmp", ImageFormat.Bmp);
// Flush all graphics changes to the bitmap
g.Flush();
解决方案
基本上我所做的是使用我在stackoverflow上找到的 void来按比例调整图像大小,然后按照@TaW 告诉我的操作。谢谢!
using (var image = Image.FromFile(filePathSave))
using (var newImage = Logic.ScaleImage(image, image.Width, image.Height + 125))
{
Bitmap destBitmap = new Bitmap(image.Width + 150, image.Height + 125, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(destBitmap);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
g.Clear(Color.White);
g.DrawImage(newImage, 0, 0);
g.DrawString(sneakerName, new Font("Arial", 16), Brushes.Black, 5, image.Height + y);
// Now save or use the bitmap
//g.Save();
destBitmap.Save($"{saveTo}/{Path.GetFileNameWithoutExtension(filePathSave)}.jpeg", ImageFormat.Jpeg);
// Flush all graphics changes to the bitmap
g.Flush();
}
推荐阅读
- octave - 在 Octave 中运行包含本地函数的简单脚本时出错
- jquery - 如何将 servlet 中的数据加载到 jsp 中(包含在另一个 jsp 中)
- react-native - 如何在 React Native 中存储令牌?
- javascript - 转到顶部和搜索按钮没有响应
- selenium - 如何使用 xpath 突出显示 Inter Explorer 浏览器中的元素(就像我们在 Google chrome 中有此选项一样)
- jquery - JSON中的意外令牌{
- c# - 在中间件、控制器和后台服务之间共享单例
- firebase - 如何通过经纬度找到最近的用户?
- xml - 从给定的 XML 中完全删除第一个元素
- ios - collectionview布局滚动方向为Horizontal时如何设置referenceSizeForHeaderInSection?