2016-03-29 4 views
0

Я работаю над водой, обозначающей изображение с другим изображением, и я не могу понять, что это правильно. Я использую библиотеку Graphics, чтобы наложить изображение водяного знака на фотографию. Объект photo Stream затем загружается как jpg-изображение в Amazon S3. Когда я иду посмотреть изображение, фотография там, но нет метки воды.ASP.net Image Watermark Not Working

Я попытался использовать функцию 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; 

      } 
     } 
    } 

EDIT: Я на самом деле обнаружил, что эта часть кода работает. Вместо сохранения на S3 я сохранил его в файле:

result.Save(@"C:\Users\Dan\Documents\Jobs\ZenPhotos\Test\test_watermark" + DateTime.Now.ToString("MM_dd_yyyy_HH_mm") + ".jpg"); 

Сохраненный файл показывает изображение с водяными знаками. Таким образом, проблема заключается в моей загрузке на S3 и не имеет отношения.

+0

Я говорю об этом, не пытаясь его сам. Но я думаю, что вам может быть повезло с использованием объекта Bitmap, а не объекта Image. У меня был успех при манипулировании изображениями с использованием Bitmap. – Theo

ответ

0

Посмотрите Automatically add watermark to an image

Вместо того, чтобы сохранить его на диске, как показывает пример, вы можете вернуть поток вместо того, чтобы, если это то, что вы после этого.

Надеюсь, это поможет.

0

Cloudinary позволяет вам манипулировать изображениями на лету, используя all kind of cool transformations возможности, включая накладки & водяные знаки. См .: 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

+0

Я рассматривал этот маршрут для других проектов, но я думаю, что он требует платной подписки. Я пытаюсь перейти на бесплатный маршрут, так как ASP.net действительно имеет некоторые мощные манипуляции с изображениями. –

+0

Бесплатная подписка позволит вам использовать эти преобразования. Вам потребуется только обновление на основе вашего использования (например, хранилище, количество обработанных изображений/месяц и т. Д.), –