【问题标题】:Webmatrix image upload and ImageMagickWebmatrix 图像上传和 ImageMagick
【发布时间】:2013-09-06 15:04:07
【问题描述】:

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

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

【问题讨论】:

    标签: image image-processing razor webmatrix


    【解决方案1】:

    使用现有的 .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。

    【讨论】:

    • 我更新了我的代码(如上所示)并收到以下错误:“找不到类型或命名空间名称 'Bitmap'(您是否缺少 using 指令或程序集引用?) "
    • @using System.Drawing; 添加到文件顶部。
    • 删除了原来的错误,现在得到这个“当前上下文中不存在名称'ImageFormat'”
    • 也将@using System.Drawing.Imaging; 添加到文件顶部。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多