Perpustakaan C# .NET Sumber Terbuka untuk Manipulasi Imej
Baca, Tulis, Ubah Suai, Ubah Saiz & Tukar Imej PNG, JPEG, GIF & TIFF secara on-the-Fly melalui API .NET Percuma.
ImageProcessor ialah pustaka pemprosesan imej .NET sumber terbuka percuma yang membenarkan pengaturcara komputer memanipulasi imej secara on-the-fly di dalam aplikasi .NET mereka sendiri. Perpustakaan ini sangat pantas, stabil, boleh dikembangkan, mesra pengguna dan mengandungi ciri-ciri hebat. Perpustakaan menyediakan sokongan penuh untuk bekerja dengan format fail JPG, JPEG, PNG, GIF, PNG8 (kedua-dua animasi dan statik), BMP dan TIFF.
Perpustakaan ini terbahagi kepada dua sub perpustakaan. Pustaka pertama dikenali sebagai ImageProcessor dan menyediakan sokongan penuh untuk bekerja dengan desktop dan aplikasi. Pustaka ke-2 ImageProcessor.Web dibina untuk ASP.NET dan menyediakan sokongan penuh untuk bekerja dengan aplikasi web. Kami akan membincangkan terutamanya tentang bahagian pertama dan bagaimana pembangun boleh menggunakannya di dalam aplikasi mereka.
Bermula dengan ImageProcessor
Keluaran Stabil tersedia pada NuGet. ImageProcessor adalah, dan hanya akan disokong pada Rangka Kerja .NET yang berjalan pada OS Windows. Sila jangan cuba menggunakan dengan .NET Core atau NET 5+.
Pasang ImageProcessor melalui NuGet
NuGet\Install-Package ImageProcessor -Version number
Gunakan Penapis pada Imej melalui Perpustakaan C#
Pustaka ImageProcessor sumber terbuka membenarkan pembangun C# .NET menapis imej dengan mudah di dalam aplikasi mereka sendiri. Sila gunakan kelas MatrixFilters untuk menetapkan penapis yang betul kepada imej anda. Terdapat beberapa jenis penapis tersedia yang boleh anda gunakan pada imej anda, seperti BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Lomograph, LoSatch, Polaroid dan Sepia.
Tambahkan Tera Air Berdasarkan Teks pada Imej
Anda boleh meletakkan imej atau tera air teks dengan mudah di mana-mana sahaja pada imej anda menggunakan pustaka ImageProcessor sumber terbuka. Perpustakaan menyediakan sokongan penuh untuk menambah tera air pada imej dengan hanya beberapa baris kod. Kelas yang diperlukan mengandungi semua sifat yang diperlukan untuk menambah tera air berasaskan teks pada imej. Ia menyokong warna teks, pilih Fon, Saiz Fon, Gaya, kelegapan, kedudukan, bayang-bayang jatuh dan banyak lagi.
Pangkas Imej menggunakan .NET
ImageProcessor memberikan pembangun perisian keupayaan untuk memangkas imej semasa ke lokasi dan saiz tersuai. Pemotongan ialah proses yang paling penting lagi mudah untuk dipertimbangkan semasa mengedit imej dan foto anda. Ia menyediakan beberapa sifat yang membantu pengguna untuk memangkas imej mengikut keperluan mereka. Seperti kiri, atas, kanan, bawah dan CropMode.
Pangkas Imej menggunakan C# .NET
namespace ImageProcessor.Tests.Processing
{
public class CropTests
{
private const string category = "Crop";
[Fact]
public void CropSettingsConstructorSetsOptions()
{
const int Left = 1;
const int Top = 1;
const int Right = 1;
const int Bottom = 1;
var expected = new CropOptions(Left, Top, Right, Bottom, CropMode.Percentage);
Assert.Equal(expected.Left, Left);
Assert.Equal(expected.Top, Top);
Assert.Equal(expected.Right, Right);
Assert.Equal(expected.Bottom, Bottom);
}
[Fact]
public void CropSettingsConstructorChecksInput()
{
Assert.Throws(() => new CropOptions(-1, 0, 0, 0));
Assert.Throws(() => new CropOptions(0, -1, 0, 0));
Assert.Throws(() => new CropOptions(0, 0, -1, 0));
Assert.Throws(() => new CropOptions(0, 0, 0, -1));
}
[Fact]
public void CropConstructorSetsOptions()
{
var expected = new CropOptions(1, 2, 3, 4, CropMode.Percentage);
var processor = new Crop(expected);
Assert.Equal(expected, processor.Options);
}
[Fact]
public void FactoryCanCropRectangle()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.EXIFCropIssue559;
var bounds = new Rectangle(939, 439, 2778, 2778);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(bounds)
.SaveAndCompare(file, category, bounds);
}
}
[Fact]
public void FactoryCanCropPercentile()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.Penguins;
var settings = new CropOptions(15, 25, 10, 5, CropMode.Percentage);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(settings)
.SaveAndCompare(file, category, settings);
}
}
}
}