【发布时间】:2016-03-29 21:22:20
【问题描述】:
我正在用另一张图片对一张图片进行水印,但我似乎无法完全正确。我正在使用图形库将水印图像覆盖在照片上。照片流对象稍后会作为 jpg 图像上传到 Amazon S3。当我去看图像时,照片在那里,但没有水印。
我尝试使用 DrawImage() 函数和 DrawText() 来添加文本作为测试,但没有成功。这部分代码有问题吗?感谢您的帮助。
public Stream WatermarkImage(Stream img, Stream mark, ImageType type)
{
// watermark the image
using (Image result = Image.FromStream(img))
{
Image markImage = Image.FromStream(mark);
using (Graphics g = Graphics.FromImage(result))
{
// draw mark and get result
g.DrawImage(markImage, new Point(20, 20));
Stream markedResult = new MemoryStream();
result.Save(markedResult, ImageFormat.Jpeg);
// return image
return markedResult;
}
}
}
编辑:我实际上发现这部分代码确实有效。我没有保存到 S3,而是将其保存到文件中:
result.Save(@"C:\Users\Dan\Documents\Jobs\ZenPhotos\Test\test_watermark" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm") + ".jpg");
保存的文件显示带水印的图像。所以问题出在我上传到 S3 的问题上,并且不相关。
【问题讨论】:
-
我没有亲自尝试就这么说。但我认为使用 Bitmap 对象而不是 Image 对象可能会更好。我在使用 Bitmap 进行图像处理方面取得了成功。
标签: c# asp.net image-processing watermark