2010-06-08 14 views
16

Tôi đang tìm kiếm gần như giờ cho các ví dụ về cách sử dụng imagemagick.net trong C# và tôi không thể tìm thấy antything.Cách sử dụng imagemagick.net trong .net?

Tất cả những gì tôi cần là thay đổi kích thước hình ảnh (.jpg) thành hình ảnh kích thước mới (jpg) và sẽ rất tuyệt nếu bạn biết cách thêm hình mờ.

tôi tải imagemagick.net từ

http://imagemagick.codeplex.com/

+0

bạn có nhận được giải pháp cuối cùng bằng Imagemagick o Magick không? –

Trả lời

6

Bạn có phải sử dụng ImageMagick không? Bạn có thể sử dụng GDI + nếu mục tiêu của bạn là phân phối lại hình ảnh ở kích thước khác. http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing cung cấp chức năng này để thay đổi kích thước. Tôi đã sử dụng hướng dẫn này trong quá khứ cho watermarking: http://www.codeproject.com/KB/GDI-plus/watermark.aspx

private static Image resizeImage(Image imgToResize, Size size) 
{ 
    int sourceWidth = imgToResize.Width; 
    int sourceHeight = imgToResize.Height; 

    float nPercent = 0; 
    float nPercentW = 0; 
    float nPercentH = 0; 

    nPercentW = ((float)size.Width/(float)sourceWidth); 
    nPercentH = ((float)size.Height/(float)sourceHeight); 

    if (nPercentH < nPercentW) 
    nPercent = nPercentH; 
    else 
    nPercent = nPercentW; 

    int destWidth = (int)(sourceWidth * nPercent); 
    int destHeight = (int)(sourceHeight * nPercent); 

    Bitmap b = new Bitmap(destWidth, destHeight); 
    Graphics g = Graphics.FromImage((Image)b); 
    g.InterpolationMode = InterpolationMode.HighQualityBicubic; 

    g.DrawImage(imgToResize, 0, 0, destWidth, destHeight); 
    g.Dispose(); 

    return (Image)b; 
} 
0

This is a .net application written in c# that utilises the ImageMagick command line application to allow conversion of multiple image formats to different formats.
Ngoài ra bạn có thể tham khảo cách viết các wrapper here.
Giới thiệu watermarks: bạn có thể sử dụng my project, bằng cách này đề xuất cải tiến nếu bạn muốn :) Tôi sẽ triển khai chúng nếu tôi có thời gian .. Hiện tại dự án không có bản cập nhật trong thời gian dài, vì tôi không có động lực để cập nhật nó (mặc dù không ai cần nó)

24

Tải này: http://magick.codeplex.com Cập nhật liên kết: https://github.com/dlemstra/Magick.NET cũng có sẵn thông qua quản lý gói NuGet.

Trong dự án của bạn, làm cho một tham chiếu đến ImageMagickNET.dll

Bạn có thể cần phải đặt nền tảng để x86 trong cấu hình bạn

Bây giờ bạn có thể sử dụng mã này để thay đổi kích thước một hình ảnh:

ImageMagickNET.MagickNet.InitializeMagick(); 
var image = new ImageMagickNET.Image("test.jpg"); 
image.Resize(new ImageMagickNET.Geometry("50%")); 
image.Write("result.jpg"); 

Thay vì sử dụng các thư viện ImageMagick.Net bạn cũng có thể sử dụng chương trình trực tiếp:

var proc = new Process 
{ 
    StartInfo = new ProcessStartInfo 
    { 
     FileName = "convert.exe", 
     Arguments = "-resize 50% -draw \"gravity south fill black text 0,0 'Watermark' \" test.jpg result.jpg", 
     UseShellExecute = false, 
     RedirectStandardError = true, 
     CreateNoWindow = true 
    } 
}; 

proc.Start(); 
string error = proc.StandardError.ReadToEnd(); 
proc.WaitForExit(); 
Các vấn đề liên quan