sample code for the Wiki
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- csharp
- Ambito
- documentation
Direzione di ricerca
La issue fornisce due esempi C# per Magick.NET: proprietà di base delle immagini e gestione dei profili colore con conversioni seppia e in scala di grigi. Per prima cosa individua la posizione appropriata nel Wiki e verifica le convenzioni attuali per gli esempi; il lavoro sarà considerato completato quando gli esempi saranno integrati lì in una forma chiara e utilizzabile.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Prerequisites
- I have written a descriptive issue title
- I have verified that I am using the latest version of Magick.NET
System Configuration
- Magick.NET version:
- Environment (Operating system: Windows
Samples
Sample 1 -- List basic properties of input file (file = path of image).
MagickReadSettings settings = new MagickReadSettings();
settings.Verbose = true;
settings.Debug = true;
using (MagickImage image = new MagickImage(file, settings))
{
// Attach event handler to warning event
image.Warning += MagickImage_Warning;
Console.WriteLine("MagicKImage" + image.Format.ToString() + ", " + image.BaseWidth + ", " + image.BaseHeight +
", Depth: " + image.Depth + ", Channels: " + image.ChannelCount +
", ColorSpace:" + image.ColorSpace.ToString());
Console.WriteLine("MimeType: " + image.FormatInfo.MimeType +
", Type: " + image.GetType().ToString() +
", MultiFramed: " + image.FormatInfo.IsMultiFrame.ToString() +
", HasAlpha: " + image.HasAlpha.ToString());
Console.WriteLine("Comment:" + image.Comment);
}
Sample 2 - Color profile handling and conversion sample (sepia and grayscale).
/// ImageMagick.GetNextImageProperty(image);
using (MagickImage image = new MagickImage(file, settings))
{
/// ============================ COLOR PRofile testing
///
ColorProfile icc = image.GetColorProfile();
ImageMagick.ColorProfile profile = null;
String dest = null;
image.Comment = "mark test";
String CMYKProfilePath = "e:\Images\jpg\Test CMYK Profile.icc";
String GRAYProfilePath = "e:\Images\jpg\Test GRAY Profile.icc";
String RGBProfilePath = "e:\Images\jpg\Test RGB Profile.icc";
String baseName = Path.GetFileNameWithoutExtension(file);
String basePath = Path.GetFullPath(file);
Console.WriteLine("\nColor profile: {0}, colorSpace {1}", icc.Name, icc.ColorSpace);
ImageMagick.ColorSpace sourceImageColorSpace = image.ColorSpace;
//Check if image color space is of type CMYK, add color profile accordingly
if (sourceImageColorSpace == ImageMagick.ColorSpace.CMYK)
{
//Adding of other color profiles code commented till the time the issue of multiple profile addition resolved
//_profilesCMYK is the list containing the ICSProfiles
if (CMYKProfilePath != "")
{ //Create a new color profile object according to selection and add it into image
IMagickImage clone = image.Clone();
clone.TransformColorSpace(ColorProfile.AdobeRGB1998); // input must have a color profile
// used file saved on disk...
profile = new ImageMagick.ColorProfile(CMYKProfilePath);
image.AddProfile(profile, true); // true = replace profile with selected one (ie. path)
image.TransformColorSpace(ColorProfile.AdobeRGB1998);
image.Format = MagickFormat.Jpeg;
// Save the result
dest = "e:\\images\\jpg\\"+baseName +"-cmykToRGB.jpg";
image.Write(dest);
dest = "e:\\images\\jpg\\" + baseName + "-cmykToRGBusingInput.jpg";
clone.TransformColorSpace(ColorProfile.AdobeRGB1998); // convert to RGB applying input profile
clone.Write(dest);
// test converting to Gray scale..
IMagickImage Sepia = image.Clone();
Sepia.SepiaTone();
dest = "e:\\images\\jpg\\" + baseName + "-cmykToSepia.jpg";
Sepia.Write(dest);
// test converting to Gray scale..
IMagickImage grey = image.Clone();
grey.Grayscale();
dest = "e:\\images\\jpg\\" + baseName + "-cmykToGray.jpg";
grey.Write(dest);
grey.Format = MagickFormat.Png;
dest = "e:\\images\\jpg\\" + baseName + "-cmykToGray.png";
grey.Write(dest);
grey.Format = MagickFormat.Tiff;
dest = "e:\\images\\jpg\\" + baseName + "-cmykToGray.tiff";
grey.Write(dest);
// Test stripping all profiles
dest = "e:\\images\\jpg\\" + baseName + "-cmykToRGBNoProfiles.jpg";
image.Strip();
image.Write(dest);
continue;
}//End if
}
//Check if image color space is of type RGB, add color profile accordingly
else if (sourceImageColorSpace == ImageMagick.ColorSpace.RGB ||
sourceImageColorSpace == ImageMagick.ColorSpace.sRGB)
{
image.Format = MagickFormat.Jpeg;
image.BorderColor = MagickColor.FromRgb(255, 0, 0);
image.Border(5);
// Save the result
dest = "e:\\images\\jpg\\" + baseName + "-isRGB.jpg";
image.TransformColorSpace(ColorProfile.AdobeRGB1998); // Convert to RGB using input Profile.
image.Write(dest);
dest = "e:\\images\\jpg\\" + baseName + "-isRGBSepia.jpg";
image.SepiaTone();
image.Write(dest);
//ICSPrfile is the object containing the name and path of availabe prfiles
//_profilesRGB is the list containing the ICSProfiles
if (RGBProfilePath != "")
{ //Create a new color profile object according to selection and add it into image
// profile = new ImageMagick.ColorProfile(RGBProfilePath);
// image.AddProfile(profile, true); // Overwrite Existing.
}//End if
continue;
}
//Check if image color space is of type GRAY, add color profile accordingly
else if (sourceImageColorSpace == ImageMagick.ColorSpace.Gray)
{
if (GRAYProfilePath != "")
{ //Create a new color profile object according to selection and add it into image
profile = new ImageMagick.ColorProfile(GRAYProfilePath);
image.AddProfile(profile, true); // Replace input profile (not applying input)
image.TransformColorSpace(ColorProfile.AdobeRGB1998); // convert to RGB.
image.Format = MagickFormat.Jpeg;
// Save the result
dest = "e:\\images\\jpg\\GrayToRGB.jpg";
image.Write(dest);
continue;
}//End if
}
}
- Lingua principale
- C#
- Stelle
- 4k
- Fork
- 453
- Merge medio
- 12h 54m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dlemstra/Magick.NET
-
MagickImage.ReadAsync swallows non cancellation related exceptions from the stream it reads fromAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dlemstra/Magick.NET#2097 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
dlemstra/Magick.NET#2087 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
dlemstra/Magick.NET#2098 ·
-
Incorrect ExifIfds for ImageHistory exif tag (or conversion issue from System.Drawing.Bitmap)Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
dlemstra/Magick.NET#2042 · 4 commenti ·
-
GPU supportAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
dlemstra/Magick.NET#1949 · 5 commenti ·
Tutte le issue di dlemstra/Magick.NET
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
Esri/calcite-dotnet-toolkit#30 · 1 reazione ·
-
VideoViewer: rotated (portrait phone) videos shown sideways when system decimal separator is a commaAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Volodymyr-Petrunin/Bankomaten#45 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
thekid/inotify-win#45 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
AvaloniaUI/Avalonia#22420 ·
I maintainer di solito rispondono entro 1 giorno