صورة مكررة

ابحث عن الصور المكررة باستخدام Java Cloud SDK

الصورة JPG هي تنسيق شائع لأغراض الطباعة والتحرير. علاوة على ذلك ، فهو تنسيق صور شائع لمشاركة الصور والصور الأخرى على الإنترنت وبين مستخدمي الهاتف المحمول والكمبيوتر الشخصي. يسمح الحجم الصغير لصور JPG بتخزين آلاف الصور في مساحة ذاكرة صغيرة. الآن بما أن الضغط يتم فقده ، فهذا يعني أن بعض المعلومات غير الضرورية يتم حذفها نهائيًا. من ناحية أخرى ، فإن أكبر ميزة لـ PNG على JPEG هي أن الضغط لا يتم فقدانه ، مما يعني أنه لا توجد خسارة في الجودة في كل مرة يتم فتحه وحفظه مرة أخرى. يتعامل PNG أيضًا مع الصور التفصيلية عالية التباين بشكل جيد. الآن في هذه المقالة ، سنناقش التفاصيل حول كيفية تحويل JPG إلى PNG باستخدام Java Cloud SDK

واجهة برمجة تطبيقات تحويل الصور

توفر واجهة برمجة التطبيقات (API) القائمة على REST الخاصة بنا القدرات لإنشاء وتحرير وتحويل ملفات الصور إلى مجموعة متنوعة من تنسيقات الملفات المدعومة. الآن من أجل تنفيذ ميزة تحميل وتحويل jpg إلى png شفاف في تطبيق Java ، نحتاج إلى استخدام Aspose.Imaging Cloud SDK for Java لأنه عبارة عن غلاف حول Cloud API. لذا فإن الخطوة التالية هي إضافة مرجعها في مشروع java عن طريق تضمين المعلومات التالية في ملف pom.xml لمشروع نوع بناء maven.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://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. ما عليك سوى الاشتراك في نسخة تجريبية مجانية من خلال عنوان بريد إلكتروني صالح. سجّل الدخول الآن باستخدام حساب تم إنشاؤه حديثًا وابحث / أنشئ معرّف العميل وسر العميل في Cloud Dashboard. هذه التفاصيل مطلوبة لأغراض المصادقة في الأقسام التالية.

تحويل JPG إلى PNG في Java

الآن دعنا نناقش التفاصيل حول كيف يمكننا تحويل JPG إلى PNG باستخدام مقتطف كود Java. من أجل إجراء التحويل ، لدينا واجهتا API لتحويل صورة إلى تنسيق آخر:

تتوقع GET API منا تحميل صورة أولاً إلى Cloud Storage ثم تمرير اسمها في عنوان URL الخاص بواجهة برمجة التطبيقات. بعد تحديث معلمات الصورة ، تقوم API بإرجاع الصورة المحدثة في الاستجابة. إذا كنت ترغب في حفظ الصورة المحدثة على Cloud Storage ، فأنت بحاجة صراحة إلى القيام بذلك كما هو موضح في الأمثلة أدناه.

من ناحية أخرى ، عند استدعاء واجهة برمجة تطبيقات POST الثانية ، يمكنك تمرير الصورة مباشرة في نص الطلب. يتيح لك أيضًا حفظ الصورة المحدثة على Cloud Storage عن طريق تحديد قيمة معلمة outPath. ومع ذلك ، إذا لم تحدد القيمة ، فستحتوي الاستجابة على صورة متدفقة.

  • قم بإنشاء مثيل ImagingApi استنادًا إلى بيانات اعتماد العميل المخصصة الخاصة بك
  • اقرأ جميع ملفات JPG من مجلد محلي باستخدام كائن ملف []
  • كرر من خلال الملفات في المصفوفة والوصول إلى محتوى الصورة الفردية إلى مثيل بايت []
  • الآن قم بإنشاء كائن من 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);
	
    //تحقق مما إذا كان الامتداد مدرجًا في SupportImageExtensions
    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();
    }
}

قم بتغيير JPG إلى PNG باستخدام أوامر cURL

نظرًا لأنه يمكننا الوصول إلى واجهات برمجة تطبيقات REST باستخدام أوامر cURL ، لذلك في هذا القسم ، نستكشف التفاصيل لتحويل 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 باستخدام مقتطف كود Java. وبالمثل ، ناقشنا أيضًا خطوات تحويل JPG إلى PNG شفافة باستخدام أوامر cURL. يرجى ملاحظة أن وثائق المنتج هي مكان رائع للتعرف على الميزات المثيرة الأخرى التي تقدمها API. في حالة احتياجك إلى تجربة واجهات برمجة التطبيقات هذه داخل المتصفح ، يرجى محاولة استخدام مرجع واجهة برمجة تطبيقات swagger.

قبل الأخير ، يرجى ملاحظة أن جميع حزم SDK السحابية الخاصة بنا تم نشرها بموجب ترخيص MIT ، لذلك يمكنك التفكير في تنزيل كود المصدر الكامل من GitHub وتعديله وفقًا لمتطلباتك. أخيرًا ، إذا واجهت أي مشكلات أثناء استخدام واجهة برمجة التطبيقات ، فيمكنك التفكير في الاتصال بنا للحصول على حل سريع عبر منتدى دعم المنتج مجانًا.

مقالات ذات صلة

يرجى زيارة الروابط التالية لمعرفة المزيد حول: