در سناریوهای مختلف، تصاویر برای کاهش حجم فایل فشرده می شوند. برای این کار، برنامه های مختلف آنلاین یا آفلاین به شما امکان می دهند فشرده سازی تصویر را اعمال کنید. با این حال، در موارد خاص، ممکن است لازم باشد ویژگی فشرده سازی تصویر را از داخل برنامه های وب یا دسکتاپ خود پیاده سازی کنید. برای چنین مواردی، این مقاله نحوه فشرده‌سازی تصاویر از جمله PNG، JPEG و TIFF را به‌صورت برنامه‌نویسی با استفاده از جاوا پوشش می‌دهد.

بهترین API فشرده سازی تصویر جاوا - دانلود رایگان

Aspose.Imaging for Java یک API قدرتمند است که به شما امکان می دهد عملیات پردازش تصویر مختلف را از داخل برنامه های جاوا انجام دهید. علاوه بر این، به شما امکان می دهد تصاویر PNG، JPEG و TIFF را به صورت یکپارچه فشرده کنید. به منظور استفاده از API، می‌توانید JAR آن را دانلود یا در برنامه‌های مبتنی بر Maven خود نصب کنید.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>20.12</version>
    <classifier>jdk16</classifier>
</dependency>

فشرده سازی تصاویر PNG در جاوا

فرمت PNG از فشرده سازی بدون اتلاف پشتیبانی می کند که به این معنی است که فشرده سازی یک تصویر PNG اندازه فایل آن را کاهش می دهد اما کیفیت آن را کاهش نمی دهد. برای تصاویر PNG، Aspose.Imaging برای جاوا به شما امکان می دهد سطوح فشرده سازی را از 0 تا 9 تنظیم کنید که در آن 0 و 9 به ترتیب حداقل و حداکثر سطوح فشرده سازی هستند. مراحل زیر برای فشرده سازی یک تصویر PNG با استفاده از Java آمده است.

  • ابتدا تصویر PNG را با استفاده از کلاس Image بارگذاری کنید.
  • یک نمونه از کلاس PngOptions ایجاد کنید.
  • سطح فشرده سازی را با استفاده از روش PngOptions.setCompressionLevel(int) تنظیم کنید.
  • در نهایت، تصویر فشرده شده PNG را با استفاده از روش Image.save(String, PngOptions) ذخیره کنید.

نمونه کد زیر نحوه فشرده سازی یک تصویر PNG را با استفاده از جاوا نشان می دهد.

// بارگیری یک تصویر از فایل (یا جریان)
Image image = Image.load("aspose_logo.png");

// روی محدوده سطح فشرده سازی ممکن حلقه بزنید
for (int i = 0; i <= 9; i++) {
	
  // برای هر PNG حاصل، یک نمونه از PngOptions ایجاد کنید
	PngOptions options = new PngOptions();
	
  // سطح فشرده سازی را تنظیم کنید
	options.setCompressionLevel(i);
	
  // ذخیره نتیجه روی دیسک (یا جریان)
	image.save("CompressingFiles_out" + i + ".png", options);
}

فشرده سازی تصویر JPEG با استفاده از جاوا

برای فشرده سازی تصویر JPEG، Aspose.Imaging برای جاوا انواع فشرده سازی زیر را ارائه می دهد.

  • خط مبنا
  • ترقی خواه
  • بدون ضرر
  • JpegLs

در زیر مراحل اعمال یکی از انواع فشرده سازی فوق بر روی تصاویر JPEG با استفاده از جاوا آورده شده است.

نمونه کد زیر نحوه فشرده سازی تصاویر JPEG با استفاده از جاوا را نشان می دهد.

// بارگذاری تصویر
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // فشرده سازی را اعمال کنید
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // ذخیره تصویر فشرده
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

فشرده سازی تصاویر TIFF با استفاده از جاوا

Aspose.Imaging برای جاوا انواع انواع فشرده سازی TIFF را ارائه می دهد که شامل LZW، Packbits، CCIT Fax 3 و 4 و غیره می شود. بنابراین، می توانید نوع فشرده سازی را انتخاب کنید که به بهترین وجه با نیاز شما مطابقت دارد. مراحل زیر برای انجام فشرده سازی TIFF با استفاده از جاوا آمده است.

  • ابتدا تصویر TIFF را با استفاده از کلاس Image بارگذاری کنید.
  • یک نمونه از کلاس TiffOptions ایجاد کنید.
  • سطح فشرده سازی را با استفاده از روش TiffOptions.setCompression(TiffCompressions) تنظیم کنید.
  • گزینه های دیگری مانند بیت در هر نمونه، فتومتریک، پالت و غیره را تنظیم کنید.
  • در نهایت، تصویر TIFF فشرده شده را با استفاده از روش Image.save(String, TiffOptions) ذخیره کنید.

نمونه کد زیر نحوه فشرده سازی تصاویر TIFF را با استفاده از جاوا نشان می دهد.

// یک تصویر را از طریق مکان مسیر فایل یا جریان بارگیری کنید
try (Image image = Image.load("sample.tiff"))
{
	// یک نمونه از TiffOptions برای تصویر حاصل ایجاد کنید
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// BitsPerSample، فشرده سازی، حالت Photometric و پالت خاکستری را تنظیم کنید
	outputSettings.setBitsPerSample(new int[] { 4 });
	outputSettings.setCompression(TiffCompressions.Lzw);
	outputSettings.setPhotometric(TiffPhotometrics.Palette);
	outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
	image.save("SampleTiff_out.tiff", outputSettings);
}

Java API برای فشرده سازی تصاویر - مجوز رایگان دریافت کنید

در صورتی که می‌خواهید API را بدون محدودیت ارزیابی امتحان کنید، می‌توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

فشرده سازی تصویر اغلب به منظور کاهش اندازه تصاویر مورد نیاز است. بنابراین، این مقاله نحوه فشرده‌سازی تصاویر PNG، JPEG و TIFF را به صورت برنامه‌نویسی با استفاده از جاوا شرح داد. علاوه بر این، می‌توانید با استفاده از مستندات درباره API پردازش تصویر جاوا بیشتر کاوش کنید.

همچنین ببینید

اطلاعات: Aspose اخیراً یک برنامه وب آنلاین جدید توسعه داده است که به شما امکان می‌دهد [تبدیل مجموعه‌ای از تصاویر به ویدیو4. همچنین ممکن است به سرویس دیگری علاقه مند باشید که می تواند برای فشرده سازی فیلم ها با [استخراج صداها از فیلم ها] استفاده شود.