2013-09-06 8 views
1

У меня есть простая страница загрузки изображения, которая работает очень хорошо:WebMatrix загрузка изображений и ImageMagick

WebImage photo = null; 
var newFileName = ""; 
var imagePath = ""; 

if(IsPost){ 
    using (var bitmap = (Bitmap)Image.FromFile(Server.MapPath("~/" + imagePath))){ 
     using (var newBitmap = new Bitmap(bitmap)){ 
      newBitmap.SetResolution(72f, 72f); 
      newBitmap.Save("file300.jpg", ImageFormat.Jpeg); 
} 

    } 
    var image = "UPDATE PropertyInfo SET PrimaryImage = @0 WHERE PropertyID = @1"; 
    db.Execute(image, newFileName, rPropertyId); 
} 

Теперь я также хочу использовать ImageMagick конвертировать любые изображения, загруженные с помощью этой формы в 72dpi. У меня есть командная строка, мне нужно это сделать, но теперь я не могу применить ее к процессу загрузки?

новообращенный C: \ image.jpg -плотности 72 C: \ image.jpg

Если я сделать это в процессе загрузки, или когда файл уже загружен на сервер. Есть ли способ инициировать командную строку из WebMatrix?

ответ

0

кажется проще использовать существующие возможности .NET для управления DPI, а именно с помощью метода System.Drawing.Bitmap.SetResolution

using (var bitmap = (Bitmap)Image.FromFile(Server.MapPath("~/" + imagePath))){ 
    using (var newBitmap = new Bitmap(bitmap)){ 
     newBitmap.SetResolution(72f, 72f); 
     newBitmap.Save("file300.jpg", ImageFormat.Jpeg); 
    } 
} 

Однако, вы можете также использовать метод System.Diagnostics.Process.Start для запуска .exes через C# код.

+0

Я обновил свой код (показано выше) и получил следующую ошибку: «Невозможно найти имя типа или пространства имен« Bitmap »(вам не хватает директивы using или ссылки на сборку?)« – Gavin5511

+0

Добавить '@ используя System.Drawing; 'вверху вашего файла. –

+0

, который удалил исходную ошибку, теперь получив это: «Имя« ImageFormat »не существует в текущем контексте» – Gavin5511

Смежные вопросы