ASP.net 图片水印无效

ASP.net Image Watermark Not Working

我正在研究用另一张图片对一张图片进行水印标记,但我似乎不太正确。我正在使用图形库在照片上叠加水印图像。照片流对象稍后作为 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 上并且无关。

看看Automatically add watermark to an image

您可以 return 一个流,而不是像示例所示那样将其保存到磁盘。

希望对您有所帮助。

Cloudinary allows you to manipulate your images on-the-fly using all kind of cool transformations capabilities including overlays & watermarks. See: http://cloudinary.com/blog/adding_watermarks_credits_badges_and_text_overlays_to_images
和:http://cloudinary.com/blog/transform_your_image_overlays_with_on_the_fly_manipulation