ASP.net图像水印不起作用

时间:2016-03-29 21:22:21

标签: c# asp.net image-processing watermark

我正在研究用另一张图像标记图像的水,而我似乎无法将其完全正确。我正在使用图形库将水印图像覆盖在照片上。稍后将照片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并且是无关的。

2 个答案:

答案 0 :(得分:0)

查看Automatically add watermark to an image

如示例所示,您可以返回流而不是将其保存到磁盘,如果这就是您所追求的目标。

希望它有所帮助。

答案 1 :(得分:0)