PPTX DOCX XLSX PDF ODP
Aspose.Imaging  skirta .NET
BMP

Filtruoti BMP naudojant C#

Kurkite savo .NET programas, kad filtruotumėte BMP failus naudodami serverio API.

Kaip filtruoti BMP failus naudojant C#

Net tobuliausias vaizdas gali būti dar labiau patobulintas arba paverstas visiškai kitokiu ir unikaliu meno kūriniu. Taikykite filtrus, kad gautumėte platų vaizdo efektų spektrą. Pavyzdžiui, galite paryškinti vaizdą arba, atvirkščiai, pridėti suliejimo, išlyginti jį arba pašalinti spalvų triukšmą. Filtrai taip pat yra neįkainojami, kai norite savo įvaizdžiui suteikti unikalumo. Norėdami tai pasiekti, pritaikykite norimą efektą arba derinkite skirtingus efektus. Šis metodas leidžia patobulinti spalvų gradientus, pašalinti triukšmą ir kartu padidinti nuotraukos objektų kraštų ryškumą. Norėdami filtruoti BMP failus, naudosime Aspose.Imaging for .NET API, kuri yra daug funkcijų, galinga ir lengvai naudojama vaizdo apdorojimo ir konvertavimo API, skirta C# platformai. Atviras NuGet paketų tvarkyklė, ieškokite Aspose.Imaging ir įdiegti. Taip pat galite naudoti šią komandą iš paketų tvarkyklės konsolės.

Paketų tvarkytuvės konsolės komanda


PM> Install-Package Aspose.Imaging

Veiksmai norint filtruoti BMP naudojant C#

Jums reikia aspose.imaging.dll norėdami išbandyti šią darbo eigą savo aplinkoje.

  • Įkelkite BMP failus naudodami Image.Load metodą
  • Filtruoti vaizdus;
  • Išsaugokite suspaustą vaizdą į diską palaikomu Aspose.Imaging formatu

Sistemos reikalavimai

„Aspose.Imaging“, skirta .NET, palaikoma visose pagrindinėse operacinėse sistemose. Tiesiog įsitikinkite, kad turite šias būtinas sąlygas.

– Microsoft Windows arba suderinama OS su .NET Framework, .NET Core, Windows Application, ASP.NET Web Application.

  • Kūrimo aplinka, tokia kaip Microsoft Visual Studio. – Aspose.Imaging, skirtas .NET, nurodytas jūsų projekte.
 

Filtruoti BMP vaizdus – .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";
MedianFilter();
void SmallRectangularFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/smallrectangularfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new SmallRectangularFilterOptions());
}, "smallrectangular");
}
void BigRectangularFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/bigrectangularfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new BigRectangularFilterOptions());
}, "bigrectangular");
}
void SharpenFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/sharpenfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new SharpenFilterOptions());
}, "sharpen");
}
void MotionWienerFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/motionwienerfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new MotionWienerFilterOptions(20, 2, 0));
}, "motionwiener");
}
void BilateralSmoothingFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/bilateralsmoothingfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new BilateralSmoothingFilterOptions());
}, "bilateralsmoothing");
}
void GaussBlurFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/gaussianblurfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new GaussianBlurFilterOptions(5, 4));
}, "gaussblur");
}
void GaussWienerFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/gausswienerfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new GaussWienerFilterOptions(5, 5));
}, "gausswiener");
}
void MedianFilter()
{
FilterImages(image =>
{
//https://apireference.aspose.com/imaging/net/aspose.imaging.imagefilters.filteroptions/medianfilteroptions
var filterRect = new Aspose.Imaging.Rectangle(image.Width / 6, image.Height / 6, image.Width * 2 / 3, image.Height * 2 / 3);
image.Filter(filterRect, new MedianFilterOptions(20));
}, "median");
}
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;
}
 
  • Apie „Aspose.Imaging“, skirta .NET API

    Aspose.Imaging API yra vaizdo apdorojimo sprendimas, skirtas kurti, modifikuoti, piešti ar konvertuoti vaizdus (nuotraukas) programose. Ji siūlo: kelių platformų vaizdo apdorojimą, įskaitant, bet tuo neapsiribojant, konvertavimą tarp įvairių vaizdo formatų (įskaitant vienodą kelių puslapių arba kelių kadrų vaizdo apdorojimą), modifikacijas, tokias kaip piešimas, darbas su grafiniais primityvais, transformacijos (keisti dydį, apkarpyti, apversti ir pasukti). , dvejetainis, pilkos spalvos tonas, koregavimas), pažangios vaizdo apdorojimo funkcijos (filtravimas, keitimas, maskavimas, iškrypimas) ir atminties optimizavimo strategijos. Tai yra atskira biblioteka ir nepriklauso nuo jokios programinės įrangos vaizdo operacijoms. Projektuose galima lengvai pridėti didelio našumo vaizdo konvertavimo funkcijų naudojant vietines API. Tai yra 100 % privačios vietinės API, o vaizdai apdorojami jūsų serveriuose.

    Filtruokite BMP naudodami internetinę programą

    Filtruokite BMP dokumentus apsilankę mūsų tiesioginės demonstracinės versijos svetainėje . Tiesioginė demonstracinė versija turi šiuos privalumus

      Nereikia nieko atsisiųsti ar nustatyti
      Nereikia rašyti jokio kodo
      Tiesiog įkelkite BMP failus ir paspauskite mygtuką "Filtruoti dabar".
      Iškart gaukite gauto failo atsisiuntimo nuorodą

    BMP Kas yra BMP Failo formatas

    Failai, kurių plėtinys yra .BMP, yra taškinio vaizdo failai, naudojami taškinio formato skaitmeniniams vaizdams saugoti. Šie vaizdai nepriklauso nuo grafikos adapterio ir taip pat vadinami nepriklausomu bitmap (DIB) failo formatu. Ši nepriklausomybė skirta atidaryti failą keliose platformose, pvz., „Microsoft Windows“ ir „Mac“. BMP failo formatas gali saugoti duomenis kaip dvimačius skaitmeninius vaizdus tiek nespalvotu, tiek spalvotu formatu su įvairiu spalvų gyliu.

    Skaityti daugiau

    Kiti palaikomi filtrų formatai

    Naudodami C# galite lengvai filtruoti įvairius formatus, įskaitant.

    APNG (Animuota nešiojama tinklo grafika)
    ICO (Windows piktograma)
    JPG (Jungtinė fotografijos ekspertų grupė)
    JPEG (Jungtinė fotografijos ekspertų grupė)
    DIB (Nuo įrenginio nepriklausomas bitmap)
    DICOM (Skaitmeninis vaizdas ir ryšiai)
    DJVU (Grafikos formatas)
    DNG (Skaitmeninio fotoaparato vaizdas)
    EMF (Patobulintas metafailo formatas)
    EMZ („Windows“ suspaustas patobulintas metafailas)
    GIF (Grafinis mainų formatas)
    JP2 (JPEG 2000)
    J2K („Wavelet“ suspaustas vaizdas)
    PNG (Nešiojamoji tinklo grafika)
    TIFF (Pažymėtas vaizdo formatas)
    TIF (Pažymėtas vaizdo formatas)
    WEBP (Rastrinis žiniatinklio vaizdas)
    WMF (Microsoft Windows metafailas)
    WMZ (Suspausta Windows Media Player oda)
    TGA (Targa grafika)
    SVG (Keičiama vektorinė grafika)
    EPS (Inkapsuliuota PostScript kalba)
    CDR (Vektorinio piešimo vaizdas)
    CMX (Corel Exchange vaizdas)
    OTG (OpenDocument standartas)
    ODG (Apache OpenOffice Draw formatas)