Я работаю над водой, обозначающей изображение с другим изображением, и я не могу понять, что это правильно. Я использую библиотеку 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 и не имеет отношения.
Я говорю об этом, не пытаясь его сам. Но я думаю, что вам может быть повезло с использованием объекта Bitmap, а не объекта Image. У меня был успех при манипулировании изображениями с использованием Bitmap. – Theo