1

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

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 中启动命令提示符?

4

1 回答 1

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# 代码运行 .exe。

于 2013-09-06T18:44:32.707 回答