1. محصولات
  2.   تصویر
  3.   Java
  4.   Apache Commons Imaging
 
  

پردازش و دستکاری تصویر منبع باز جاوا

کتابخانه پیشرو ویرایش و دستکاری تصویر منبع باز جاوا امکان خواندن، نوشتن، دستکاری و تبدیل فرمت های پرکاربرد مانند PNG، JPEG، BMP، TIFF، ICO و موارد دیگر را می دهد.

تصویربرداری Apache Commons چیست؟

Apache Commons Imaging که قبلاً Sanselan نامیده می شد، یک کتابخانه جاوا منبع باز قدرتمند است که تحت پروژه Apache Commons توسعه یافته است. این بخشی از پروژه گسترده‌تر Apache Commons است و به توسعه‌دهندگان نرم‌افزار راهی کارآمد برای خواندن و نوشتن انواع فرمت‌های تصویر بدون اتکا به کتابخانه‌های خارجی ارائه می‌دهد. توسعه‌دهندگان نرم‌افزار می‌توانند انواع فرمت‌های تصویر، ساده‌سازی کارهایی مانند خواندن و نوشتن تصویر، تبدیل به فرمت‌های دیگر، مدیریت فراداده تصویر، رندر سفارشی تصویر، مدل‌های رنگی تصویر، دستکاری تصویر و غیره را انجام دهند. انعطاف پذیری این کتابخانه آن را برای برنامه هایی که نیاز به پردازش تصویر بدون تکیه بر وابستگی های خارجی دارند، ایده آل می کند. این کتابخانه انواع فیلترهای تصویر، از جمله تاری، وضوح، و تشخیص لبه را فراهم می کند.

Apache Commons Imaging یک کتابخانه قوی و همه کاره است که فرآیند کار با فایل های تصویری در برنامه های جاوا را ساده می کند. این یک کتابخانه مبتنی بر جاوا است که از چندین فرمت تصویر مانند PNG، JPEG، BMP، GIF، TIFF، ICO و غیره پشتیبانی می کند. علاوه بر این، ابزارهایی برای تجزیه و تحلیل تصویر، از جمله محاسبه هیستوگرام، تبدیل فضای رنگی، و تقسیم بندی تصویر ارائه می دهد. این یک انتخاب ایده آل برای توسعه دهندگان، محققان و علاقه مندان است. این کتابخانه یک API کارآمد و ساده برای دستکاری تصویر ارائه می دهد که می تواند به ویژه در محیط های محدود به منابع مفید باشد. چه در حال کار بر روی پروژه ای باشید که به پردازش تصویر نیاز دارد، یا به سادگی می خواهید دستکاری تصویر را آزمایش کنید، Apache Commons Imaging قطعا ارزش کاوش را دارد.

Previous Next

آغاز با تصویربرداری Apache Commons

روش توصیه شده برای نصب Apache Commons Imaging استفاده از Maven Repository است. لطفا از دستور زیر برای نصب راحت استفاده کنید.

مخزن Maven برای Apache Commons Imaging

 

<repositories>
	<repository>
	<id>AsposeJavaAPI</id>
	<name>Aspose Java API</name>
	<url>https://releases.aspose.com/java/repo/</url>
	</repository>
</repositories>

//Define Aspose.PDF for Java API Dependency

<dependencies>
	<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-imaging</artifactId>
	<version>1.0.0-alpha5</version>
	</dependency>
</dependencies>

نصب Apache Commons Imaging از طریق GitHub

go get -u https://github.com/apache/commons-imaging.git 

می‌توانید کتابخانه را مستقیماً از صفحه محصول GitHub دانلود کنید

تبدیل تصویر در برنامه‌های جاوا

نمودارهای ذخیره شده در یک قالب (مانند PNG) ممکن است برای سازگاری یا اهداف بهینه سازی نیاز به تبدیل به قالب دیگری (مانند BMP یا JPEG) داشته باشند. Apache Commons Imaging ویژگی‌های تبدیل را ارائه می‌دهد و به توسعه‌دهندگان اجازه می‌دهد تا فرمت‌های مختلف فایل تصویری را بدون زحمت بین فرمت‌های پشتیبانی شده تبدیل کنند. مثال زیر نشان می دهد که توسعه دهندگان نرم افزار به راحتی می توانند یک فایل PNG را به فرمت BMP تبدیل کنند. این فرآیند ساده است و می تواند تبدیل بین هر فرمت پشتیبانی شده را انجام دهد، و برای برنامه هایی که نیاز به ذخیره تصاویر در چندین فرمت برای اهداف سازگاری دارند، ایده آل است.

چگونه از طریق Java API یک فایل PNG را به فرمت فایل BMP تبدیل کنیم؟


File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);

دستکاری تصویر از طریق کتابخانه جاوا

تصویربرداری Apache Commons را می توان در ترکیب با سایر کتابخانه های جاوا مانند BufferedImage برای انجام تبدیل های رایج تصویر مانند تغییر اندازه، برش و مقیاس بندی استفاده کرد. متد Scalr.resize () از یک کتابخانه پردازش تصویر جاوا دیگر (imgscalr) برای تغییر اندازه استفاده می شود و سپس تصویر تغییر اندازه با استفاده از Apache Commons Imaging ذخیره می شود. این امکان ادغام یکپارچه با سایر کتابخانه های جاوا را برای دستکاری تصویر پیشرفته فراهم می کند.

چگونه یک تصویر را در برنامه های جاوا تغییر اندازه دهیم؟

BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px

File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);

استخراج فراداده تصویر از طریق Java API

یکی از ویژگی های کلیدی Apache Commons Imaging توانایی آن در استخراج ابرداده از تصاویر داخل برنامه های جاوا است. برای نمودارها، این ابرداده می‌تواند حاوی اطلاعات مفیدی مانند تاریخ ایجاد، تاریخچه تغییرات یا جزئیات نویسنده باشد. این قابلیت به توسعه دهندگان اجازه می دهد تا تصاویر نمودار را به روش هایی پردازش کنند که فراتر از نمایش صرف باشد. مثال زیر نشان می دهد که چگونه توسعه دهندگان نرم افزار می توانند متادیتا را از تصاویر داخل برنامه های جاوا استخراج کنند.

چگونه فراداده را از طریق Java API از تصاویر استخراج کنیم؟

File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());

پردازش سفارشی تصویر در برنامه‌های جاوا

توسعه‌دهندگان نرم‌افزار می‌توانند از Apache Commons Imaging برای تولید تصویر در حال حرکت یا اصلاح تصاویر موجود در برنامه‌های جاوا استفاده کنند. با ترکیب کتابخانه با Graphics2D بومی جاوا، می‌توان روی تصاویر به صورت برنامه‌نویسی طراحی کرد یا حاشیه‌نویسی اضافه کرد. مثال کد زیر یک تصویر خالی ایجاد می کند، متنی را به آن اضافه می کند و آن را به عنوان یک فایل PNG ذخیره می کند. این نشان می دهد که چگونه Apache Commons Imaging می تواند با API های ترسیمی جاوا برای تولید تصاویر از ابتدا کار کند.

چگونه از ابتدا از طریق جاوا تصاویر تولید کنیم؟

BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());

graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);

graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);
 فارسی