我正在研究用另一张图像标记图像的水,而我似乎无法将其完全正确。我正在使用图形库将水印图像覆盖在照片上。稍后将照片Stream对象作为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并且是无关的。
答案 0 :(得分:0)
答案 1 :(得分:0)