Upravit J2Ks pomocí C#
Vytvořte si vlastní aplikace .NET pro úpravu souborů J2K pomocí rozhraní API na straně serveru.
Jak upravit soubory J2K pomocí C#
I ti nejzkušenější fotografové se mohou při focení mýlit nebo se setkat s nepříznivými světelnými podmínkami. Takové situace mohou vést k obrazovým vadám, ale i špatná fotografie má šanci. Pomocí knihovny C# můžete tyto problémy programově opravit úpravou jasu, kontrastu a barevné gama. Pokud je fotografie příliš tmavá, zvýšení jasu zesvětlí tmavé oblasti a zviditelní dříve skryté detaily. Úprava kontrastu zvyšuje rozdíl mezi světlými a tmavými oblastmi a rozšiřuje rozsah jasu pro lepší obraz. Pokud jste pořídili fotografii při umělém osvětlení, což má za následek nežádoucí barevný odstín, použijte úpravu gama barev pro korekci vyvážení bílé. K úpravě souborů J2K použijeme Aspose.Imaging for .NET API, které je funkčně bohaté, výkonné a snadno použitelné rozhraní API pro manipulaci a konverzi obrázků pro platformu C#. Otevřete správce balíčků NuGet , vyhledejte Aspose.Imaging a nainstalujte. Můžete také použít následující příkaz z konzoly Správce balíčků.
Příkaz konzole Správce balíčků
PM> Install-Package Aspose.Imaging
Kroky k úpravě J2Ks pomocí C#
K vyzkoušení následujícího pracovního postupu ve svém vlastním prostředí potřebujete aspose.imaging.dll .
- Načíst soubory J2K metodou Image.Load
- Upravit obrázky;
- Uložte komprimovaný obrázek na disk ve formátu podporovaném Aspose.Imaging
Požadavky na systém
Aspose.Imaging pro .NET je podporován ve všech hlavních operačních systémech. Jen se ujistěte, že máte následující předpoklady.
- Microsoft Windows nebo kompatibilní OS s rozhraním .NET Framework, .NET Core, aplikací pro Windows, webovou aplikací ASP.NET.
- Vývojové prostředí jako Microsoft Visual Studio.
- Aspose.Imaging pro .NET odkazovaný ve vašem projektu.
Upravit obrázky ve formátu J2K – .NET
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Bmp; | |
using Aspose.Imaging.FileFormats.Dicom; | |
using Aspose.Imaging.FileFormats.Emf; | |
using Aspose.Imaging.FileFormats.Jpeg; | |
using Aspose.Imaging.FileFormats.Jpeg2000; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.FileFormats.Psd; | |
using Aspose.Imaging.FileFormats.Tiff.Enums; | |
using Aspose.Imaging.ImageFilters.FilterOptions; | |
using Aspose.Imaging.ImageOptions; | |
using Aspose.Imaging.Masking; | |
using Aspose.Imaging.Masking.Options; | |
using Aspose.Imaging.Masking.Result; | |
using Aspose.Imaging.Sources; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads"; | |
AdjustBrightness(); | |
void AdjustGammaRGB() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging.rasterimage/adjustgamma/methods/1 | |
image.AdjustGamma(5, 0.1f, 0.1f); | |
}, "adjustgammargb"); | |
} | |
void AdjustGamma() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/adjustgamma | |
image.AdjustGamma(3); | |
}, "adjustgamma"); | |
} | |
void AdjustContrast() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/adjustcontrast | |
image.AdjustContrast(50); | |
}, "adjustcontrast"); | |
} | |
void AdjustBrightness() | |
{ | |
FilterImages(image => | |
{ | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/adjustbrightness | |
image.AdjustBrightness(100); | |
}, "adjustbrightness"); | |
} | |
void FilterImages(Action<RasterImage> doFilter, string filterName) | |
{ | |
List<string> rasterFormats = new List<string>() { "jpg", "png", "bmp", "apng", "dicom", | |
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico" }; | |
List<string> vectorFormats = new List<string>() { "svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr" }; | |
List<string> allFormats = new List<string>(rasterFormats); | |
allFormats.AddRange(vectorFormats); | |
allFormats.ForEach( | |
formatExt => | |
{ | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
bool isVectorFormat = vectorFormats.IndexOf(formatExt) > -1; | |
//Need to rasterize vector formats before background remove | |
if (isVectorFormat) | |
{ | |
inputFile = RasterizeVectorImage(formatExt, inputFile); | |
} | |
var outputFile = Path.Combine(templatesFolder, $"{filterName}_{formatExt}.png"); | |
Console.WriteLine($"Processing {formatExt}"); | |
using (var image = (RasterImage)Image.Load(inputFile)) | |
{ | |
doFilter(image); | |
//If image is multipage save each page to png to demonstrate results | |
if (image is IMultipageImage multiPage && multiPage.PageCount > 1) | |
{ | |
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++) | |
{ | |
string fileName = $"{filterName}_page{pageIndex}_{formatExt}.png"; | |
multiPage.Pages[pageIndex].Save(templatesFolder + fileName, new PngOptions()); | |
File.Delete(templatesFolder + fileName); | |
} | |
} | |
else | |
{ | |
image.Save(outputFile, new PngOptions()); | |
File.Delete(outputFile); | |
} | |
} | |
//Remove rasterized vector image | |
if (isVectorFormat) | |
{ | |
File.Delete(inputFile); | |
} | |
} | |
); | |
} | |
string RasterizeVectorImage(string formatExt, string inputFile) | |
{ | |
string outputFile = Path.Combine(templatesFolder, $"rasterized.{formatExt}.png"); | |
using (var image = Image.Load(inputFile)) | |
{ | |
image.Save(outputFile, new PngOptions()); | |
} | |
return outputFile; | |
} |
O Aspose.Imaging pro .NET API
Aspose.Imaging API je řešení pro zpracování obrázků pro vytváření, úpravu, kreslení nebo konverzi obrázků (fotografií) v rámci aplikací. Nabízí: multiplatformní zpracování obrazu, mimo jiné včetně převodů mezi různými formáty obrázků (včetně jednotného vícestránkového nebo vícesnímkového zpracování obrazu), úpravy jako kreslení, práci s grafickými primitivy, transformace (změna velikosti, oříznutí, převrácení a otočení). binarizace, stupně šedi, úprava), pokročilé funkce pro manipulaci s obrázky (filtrování, rozklad, maskování, vyrovnání sklonu) a strategie optimalizace paměti. Je to samostatná knihovna a není závislá na žádném softwaru pro operace s obrázky. V rámci projektů lze snadno přidat vysoce výkonné funkce pro konverzi obrázků s nativními rozhraními API. Jedná se o 100% soukromá on-premise API a obrázky se zpracovávají na vašich serverech.Upravte J2K pomocí online aplikace
Upravte dokumenty ve formátu J2K na našem webu s živými ukázkami . Živé demo má následující výhody
J2K co je J2K Formát souboru
Soubor J2K je obrázek, který je komprimován pomocí komprese wavelet namísto komprese DCT.
Přečtěte si víceDalší podporované formáty úprav
Pomocí C# lze snadno upravit různé formáty včetně.