تصویر JPG یک فرمت محبوب برای اهداف چاپ و ویرایش است. علاوه بر این، یک فرمت تصویری محبوب برای به اشتراک گذاری عکس و سایر تصاویر در اینترنت و بین کاربران موبایل و رایانه شخصی است. اندازه فایل کوچک تصاویر JPG امکان ذخیره هزاران تصویر را در فضای کوچک حافظه فراهم می کند. اکنون از آنجایی که فشرده سازی از بین می رود، به این معنی است که برخی از اطلاعات غیر ضروری برای همیشه حذف می شوند. از طرف دیگر، بزرگترین مزیت PNG نسبت به JPEG این است که فشرده سازی بدون تلفات است، به این معنی که هر بار که باز می شود و دوباره ذخیره می شود، کیفیت آن کاهش نمی یابد. PNG همچنین تصاویر دقیق و با کنتراست بالا را به خوبی مدیریت می کند. اکنون در این مقاله، میخواهیم جزئیات نحوه تبدیل JPG به PNG با استفاده از Java Cloud SDK را بررسی کنیم.
API تبدیل تصویر
API مبتنی بر REST ما قابلیتهایی را برای ایجاد، ویرایش و تبدیل فایلهای تصویری به انواع فرمتهای فایل پشتیبانی شده ارائه میدهد. اکنون برای پیادهسازی ویژگی برای بارگیری و تبدیل jpg به png شفاف در برنامه جاوا، باید از Aspose.Imaging Cloud SDK for Java استفاده کنیم زیرا این یک بستهبندی در اطراف Cloud API است. بنابراین گام بعدی اضافه کردن مرجع آن در پروژه جاوا با قرار دادن اطلاعات زیر در pom.xml پروژه ساخت نوع maven است.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-cloud</artifactId>
<version>22.4</version>
</dependency>
</dependencies>
هنگامی که مرجع JDK به پروژه اضافه شد، گام مهم بعدی ایجاد یک حساب کاربری رایگان از طریق Aspose Cloud Dashboard است. به سادگی از طریق یک آدرس ایمیل معتبر برای یک آزمایش رایگان ثبت نام کنید. اکنون با استفاده از حساب تازه ایجاد شده وارد شوید و Client ID و Client Secret را در Cloud Dashboard جستجو/ایجاد کنید. این جزئیات برای اهداف احراز هویت در بخشهای زیر مورد نیاز است.
تبدیل JPG به PNG در جاوا
اکنون اجازه میدهیم در مورد اینکه چگونه میتوانیم JPG را با استفاده از قطعه کد جاوا به PNG تبدیل کنیم، بحث کنیم. برای انجام تبدیل، دو API برای تبدیل یک تصویر به فرمت دیگر داریم:
GET API از ما انتظار دارد که ابتدا یک تصویر را در Cloud Storage آپلود کنیم و سپس نام آن را در URL API ارسال کنیم. پس از به روز رسانی پارامترهای تصویر، API تصویر به روز شده را در پاسخ برمی گرداند. اگر میخواهید تصویر بهروزرسانیشده را در فضای ذخیرهسازی ابری ذخیره کنید، صراحتاً باید این کار را همانطور که در مثالهای زیر نشان داده شده است انجام دهید.
از طرف دیگر، هنگام فراخوانی دومین API POST، می توانید مستقیماً تصویر را در بدنه درخواست ارسال کنید. همچنین به شما امکان می دهد با تعیین مقدار پارامتر outPath تصویر به روز شده را در فضای ذخیره سازی ابری ذخیره کنید. با این حال، اگر مقدار را مشخص نکنید، پاسخ حاوی یک تصویر استریم شده است.
- یک نمونه از ImagingApi بر اساس اعتبار مشتری شخصی خود ایجاد کنید
- تمام فایلهای JPG را از پوشه محلی با استفاده از شی File[] بخوانید
- فایلهای موجود در آرایه را تکرار کنید و محتوای یک تصویر را به نمونه بایت[] برسانید
- اکنون یک شی از CreateConvertedImageRequest ایجاد کنید که در آن فرمت تصویر خروجی را به صورت PNG تعیین می کنیم.
- متد createConvertedImage(…) را فراخوانی کنید که JPG را به عنوان PNG ذخیره می کند و نتیجه را به عنوان جریان پاسخ برمی گرداند.
- در نهایت فایل PNG را با استفاده از شی FileOutputStream در درایو محلی ذخیره کنید
// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// ایجاد شی تصویربرداری
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
File directory = new File("/Users/");
//تمام فایل ها را از پوشه دریافت کنید
File[] allFiles = directory.listFiles();
if (allFiles == null || allFiles.length == 0) {
throw new RuntimeException("No files present in the directory: " + directory.getAbsolutePath());
}
//پسوندهای تصویر مورد نیاز را در اینجا تنظیم کنید.
List<String> supportedImageExtensions = Arrays.asList("jpg","jpeg");
int counter =0;
//لیست فیلتر شده فایل های تصویری JPG
List<File> acceptedImages = new ArrayList<>();
// از طریق هر فایل تصویری که از پوشه محلی خوانده می شود، تکرار کنید
for (File file : allFiles) {
//پسوند فایل را تجزیه کنید
String fileExtension = file.getName().substring(file.getName().lastIndexOf(".") + 1);
//بررسی کنید که آیا برنامه افزودنی در supportedImageExtensions فهرست شده است
if (supportedImageExtensions.stream().anyMatch(fileExtension::equalsIgnoreCase)) {
//تصویر را به لیست فیلتر شده اضافه کنید
acceptedImages.add(file);
// محتوای تصویر JPG را بخوانید
byte[] bytes = Files.readAllBytes(acceptedImages.get(counter).toPath());
// درخواست تبدیل تصویر را با فرمت حاصل به صورت PNG ایجاد کنید
CreateConvertedImageRequest request = new CreateConvertedImageRequest(bytes, "PNG", null, null);
// JPG را به PNG تبدیل کنید و فایل حاصل را در جریان پاسخ برگردانید
byte[] exportedImage = imageApi.createConvertedImage(request);
// تصویر صادر شده را در حافظه محلی ذخیره کنید
FileOutputStream fos = new FileOutputStream(directory + "/"+file.getName().replaceFirst("[.][^.]+$", "")+".png");
fos.write(exportedImage);
fos.close();
}
}
با استفاده از دستورات cURL، JPG را به PNG تغییر دهید
از آنجایی که می توانیم با استفاده از دستورات cURL به API های REST دسترسی پیدا کنیم، بنابراین در این بخش، جزئیات تبدیل JPG به PNG شفاف را بررسی می کنیم. اکنون به عنوان یک پیش نیاز، ابتدا باید یک توکن دسترسی JWT (بر اساس اعتبار مشتری) در حین اجرای دستور زیر ایجاد کنیم.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
اکنون میخواهیم از فراخوانی ConvertImage API استفاده کنیم، انتظار میرود ورودی JPG از قبل در فضای ذخیرهسازی ابری موجود باشد. اکنون دستور زیر را برای تغییر JPG به PNG اجرا کنید.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/convert?format=PNG" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.png
نتیجه
این مقاله جزئیات شگفت انگیزی در مورد چگونگی تبدیل JPG به PNG با استفاده از قطعه کد جاوا ارائه کرده است. به طور مشابه، ما همچنین مراحل تبدیل JPG به PNG شفاف با استفاده از دستورات cURL را مورد بحث قرار داده ایم. لطفاً توجه داشته باشید که مستندات محصول یک مکان شگفتانگیز برای آشنایی با سایر ویژگیهای هیجانانگیز ارائهشده توسط API است. در صورت نیاز به امتحان این APIها در مرورگر، لطفاً از Swagger API Reference استفاده کنید.
ماقبل آخر، لطفاً توجه داشته باشید که همه کیتهای توسعه نرمافزار ابری ما تحت مجوز MIT منتشر شدهاند، بنابراین میتوانید کد منبع کامل را از GitHub دانلود کنید و آن را مطابق با نیاز خود تغییر دهید. در نهایت، اگر در حین استفاده از API با مشکلی مواجه شدید، ممکن است از طریق [تالار گفتمان پشتیبانی محصول] رایگان به ما برای حل و فصل سریع مراجعه کنید.
مقالات مرتبط
لطفا برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: