2010-06-08 3 views
16

Sto cercando quasi un'ora per esempi di utilizzo di imagemagick.net in C# e non riesco a trovare nulla.Come usare imagemagick.net in .net?

Tutto ciò di cui ho bisogno è ridimensionare l'immagine (.jpg) in una nuova immagine (anche jpg) e sarebbe bello se sapessi aggiungere una filigrana.

Ho scaricato imagemagick.net da

http://imagemagick.codeplex.com/

+0

hai ottenuto la soluzione finale usando Imagemagick o Magick? –

risposta

6

Devi usare ImageMagick? Puoi utilizzare GDI + se il tuo obiettivo è riconsegnare un'immagine in un'altra dimensione. http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing fornisce questa funzione per ridimensionare. Ho usato questo tutorial in passato per 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.
Inoltre è possibile vedere come scrivere il wrapper here.
Denominazione filigrane: è possibile utilizzare my project, a proposito suggerire miglioramenti se si desidera :) Li implementerò se ho tempo .. Per ora il progetto non ha avuto aggiornamenti per molto tempo, perché non avevo alcuna motivazione ad aggiornare (anche se nessuno ne ha bisogno)

24

Scarica questa: http://magick.codeplex.com Aggiornamento link: https://github.com/dlemstra/Magick.NET disponibile anche tramite NuGet gestore di pacchetti.

Nel progetto, fare un riferimento alla ImageMagickNET.dll

Potrebbe essere necessario impostare la piattaforma per x86 in te la configurazione

Ora è possibile utilizzare questo codice per ridimensionare un'immagine:

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

Invece di utilizzare la libreria ImageMagick.Net si potrebbe anche utilizzare il programma direttamente:

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();