【问题标题】:ASP.net Image Watermark Not WorkingASP.net 图像水印不工作
【发布时间】: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


【解决方案1】:

看看Automatically add watermark to an image

您可以返回一个流,而不是像示例演示的那样将其保存到磁盘。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我已经考虑过其他项目的路线,但我认为它需要付费订阅。我正在尝试走免费路线,因为 ASP.net 实际上有一些强大的图像处理功能。
    • 免费订阅将允许您使用这些转换。您只需要根据您的使用情况(例如存储、每月处理的图像数量等)进行升级
    猜你喜欢
    • 2017-12-05
    • 2011-07-24
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多