Грейскейл WEBP через C#
Створюйте власні програми .NET для грейскейлу файлів WEBP за допомогою API на стороні сервера.
Як грейскейлити WEBP файли за допомогою C#
Яскравість і багатобарвність - супутники красивих образів. Однак кольоровий друк не завжди можливий. У таких випадках необхідно перетворити фотографію в градації сірого. Крім того, цю функцію можна використовувати як незалежний художній підхід, підвищуючи привабливість вашого веб-сайту. Замість того, щоб нарікати на втрату інформації про колір під час цього переходу, що потенційно може перешкодити сприйняттю, використовуйте це на свою користь. Зосередьтеся на деталях зображення, поверхневих текстурах і взаємодії світлих і темних областей, щоб створити виразне візуальне враження. Щоб відтінити сірий файл WEBP, ми будемо використовувати Aspose.Imaging для .NET API, який є багатофункціональним, потужним і простим у використанні API для обробки зображень і перетворення для платформи C#. Відкрийте менеджер пакетів NuGet , знайдіть Aspose.Imaging і встановіть. Ви також можете використати наступну команду з консолі менеджера пакетів.
Команда консолі менеджера пакетів
PM> Install-Package Aspose.Imaging
Кроки грейскейлу WEBP через C#
Вам потрібен aspose.imaging.dll , щоб спробувати наступний робочий процес у вашому власному середовищі.
- Завантажити файли WEBP за допомогою методу 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, згаданий у вашому проекті.
Зображення у відтінках сірого WEBP - .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"; | |
GrayscaleImages(); | |
void GrayscaleImages() | |
{ | |
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, $"grayscale_{formatExt}.png"); | |
Console.WriteLine($"Processing {formatExt}"); | |
using (var image = (RasterImage)Image.Load(inputFile)) | |
{ | |
//Additional code examples can be found at | |
//https://apireference.aspose.com/imaging/net/aspose.imaging/rasterimage/methods/grayscale | |
image.Grayscale(); | |
//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 = $"grayscale_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, а зображення обробляються на ваших серверах.Зробiть зображення WEBP чорно-бiлим через онлайн-додаток
Зробiть чоно-бiлим WEBP зображення, відвідавши наш веб-сайт Live Demos . Жива демонстрація має такі переваги
WEBP Що таке WEBP формат
WebP, представлений компанією Google, — це сучасний растровий формат файлів веб-зображень, який базується на стисненні без втрат і з втратами. Він забезпечує таку саму якість зображення при значному зменшенні розміру зображення. Оскільки більшість веб-сторінок використовують зображення як ефективне представлення даних, використання зображень WebP на веб-сторінках призводить до швидшого завантаження веб-сторінок. За даними Google, зображення WebP без втрат на 26% менші за розмір порівняно з PNG, а зображення WebP із втратами на 25-34% менші за порівняльні зображення JPEG. Зображення порівнюються на основі індексу структурної подібності (SSIM) між WebP та іншими форматами файлів зображень. WebP є дочірнім проектом формату мультимедійного контейнера WebM.
ДетальнішеІнші підтримувані формати для грейскейлу зображень
Використовуючи C#, можна легко грейскейлити у різних форматах, зокрема.