Webmatrix图像上传和ImageMagick

时间:2013-09-06 15:04:08

标签: image image-processing razor webmatrix

我有一个简单的图片上传页面,效果非常好:

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 -density 72 c:\ image.jpg

我应该在上传过程中执行此操作,还是将文件上载到服务器后执行此操作。有没有办法从WebMatrix中启动命令提示符?

1 个答案:

答案 0 :(得分: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方法通过C#代码运行.exes。