Налаштуйте PNG за допомогою C#
Створюйте власні програми .NET для налаштування файлів PNG за допомогою серверних API.
Як налаштувати файли PNG за допомогою C#
Навіть найдосвідченіші фотографи можуть помилятися або зіткнутися з несприятливими умовами освітлення під час зйомки. Такі ситуації можуть призвести до дефектів зображення, але навіть у поганого фото є шанс. За допомогою бібліотеки C# ви можете програмно виправити ці проблеми, налаштувавши яскравість, контраст і колірну гамму. Якщо фотографія вийшла надто темною, збільшення яскравості освітлить темні ділянки, зробивши видимими раніше приховані деталі. Регулювання контрастності збільшує різницю між світлими та темними ділянками, розширюючи діапазон яскравості для покращеного зображення. Якщо ви зробили фотографію при штучному освітленні, що призвело до небажаного кольорового відтінку, скористайтеся налаштуванням колірної гами, щоб виправити баланс білого. Щоб налаштувати файли PNG, ми будемо використовувати Aspose.Imaging для .NET API, який є багатофункціональним, потужним і простим у використанні API для обробки зображень і перетворення для платформи C#. Відкрийте менеджер пакетів NuGet , знайдіть Aspose.Imaging і встановіть. Ви також можете використати наступну команду з консолі менеджера пакетів.
Команда консолі менеджера пакетів
PM> Install-Package Aspose.Imaging
Кроки для налаштування PNG за допомогою C#
Вам потрібен aspose.imaging.dll , щоб спробувати наступний робочий процес у вашому власному середовищі.
- Завантажувати файли PNG за допомогою методу Image.Load
- Налаштувати зображення;
- Збережіть стиснене зображення на диск у форматі, який підтримує Aspose.Imaging
Системні вимоги
Aspose.Imaging для .NET підтримується в усіх основних операційних системах. Просто переконайтеся, що у вас є такі передумови.
- Microsoft Windows або сумісна ОС із .NET Framework, .NET Core, Windows Application, ASP.NET Web Application.
- Середовище розробки, наприклад Microsoft Visual Studio.
- Aspose.Imaging для .NET, згаданий у вашому проекті.
Налаштувати PNG зображення - .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; | |
} |
Про API Aspose.Imaging для .NET
API Aspose.Imaging — це рішення для обробки зображень для створення, модифікації, малювання або конвертації зображень (фотографій) у програмах. Він пропонує: кросплатформну обробку зображень, включаючи, але не обмежуючись, перетворення між різними форматами зображень (включно з уніфікованою обробкою багатосторінкових або багатокадрових зображень), такі модифікації, як малювання, робота з графічними примітивами, перетворення (зміна розміру, обрізання, перевертання та обертання). , бінаризація, відтінки сірого, коригування), розширені функції обробки зображення (фільтрування, згладжування, маскування, виправлення) і стратегії оптимізації пам’яті. Це окрема бібліотека, яка не залежить від програмного забезпечення для роботи із зображеннями. Можна легко додати високоефективні функції перетворення зображень за допомогою власних API у проекти. Це 100% приватні локальні API, а зображення обробляються на ваших серверах.Налаштуйте PNG через онлайн-додаток
Відкоригуйте документи PNG, відвідавши наш веб-сайт із демонстраційними версіями . Жива демонстрація має такі переваги
PNG Що таке PNG формат
PNG, Portable Network Graphics, відноситься до типу формату растрового зображення, який використовує стиснення без втрат. Цей формат файлу було створено як заміну формату Graphics Interchange Format (GIF) і не має обмежень щодо авторських прав. Однак формат файлу PNG не підтримує анімацію. Формат файлу PNG підтримує стиснення зображень без втрат, що робить його популярним серед користувачів. З плином часу PNG перетворився на один із найбільш використовуваних форматів файлів зображень. Майже всі операційні системи підтримують відкриття файлів PNG. Наприклад, засіб перегляду Microsoft Windows має можливість відкривати файли PNG, оскільки ОС за замовчуванням підтримує підтримку, доступну як частину встановлення.
ДетальнішеІнші підтримувані формати Adjust
Використовуючи C#, можна легко налаштувати різні формати, зокрема.