كيفية استخراج صورة المشاجرة

كيفية استخراج الصور من ملفات TIFF

TIFF من TIF هو اختصار لـ Tag Image File Format وهو من بين صور الرسومات النقطية الشائعة ، المستخدمة على نطاق واسع من قبل فناني الجرافيك ، وصناعة النشر ، والمصورين. يختلف TIFF عن JPEG و GIF و PNG لأنه تنسيق “غير مضغوط” ويمكنه تخزين بيانات صورة أكثر بكثير من نظيراتها في JPEG. الآن إحدى الميزات البارزة لملفات TIFF هي قدرتها على تخزين صور متعددة (لكل منها قنوات متعددة) كإطارات متسلسلة في مكدس زمني أو z-stack من الصور. لذلك في هذه المقالة ، سوف نستكشف التفاصيل حول كيفية استخراج الإطارات من صور TIFF متعددة الإطارات باستخدام Java Cloud SDK.

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

لقد أنشأنا واجهة برمجة تطبيقات لمعالجة الصور تقدم إمكانات تحرير ومعالجة وتحويل البيانات النقطية وملفات التعريف والفوتوشوب و التنسيقات المدعومة إلى مجموعة متنوعة من تنسيقات الملفات. نتحدث الآن عن معالجة صور TIFF ، فإن API قادرة بشكل كبير على معالجة صور TIFF. وفقًا لنطاق هذه المقالة ، سنستخدم Aspose.Imaging Cloud SDK for Java وهو عبارة عن غلاف حول REST API. لذا فإن الخطوة الأولى في استخدام إمكانياتها هي إضافة مرجعها في مشروع جافا من خلال تضمين المعلومات التالية في 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>

الخطوة التالية هي الحصول على تفاصيل بيانات اعتماد العميل من Cloud Dashboard وإذا لم يكن لديك حساب عبر Aspose Cloud Dashboard ، يرجى إنشاء حساب مجاني من خلال عنوان بريد إلكتروني صالح. سجّل الدخول الآن باستخدام حساب تم إنشاؤه حديثًا وابحث / أنشئ معرّف العميل وسر العميل في Aspose Cloud Dashboard.

كيفية استخراج صورة TIFF في جافا

دعنا نستكشف التفاصيل حول كيفية استخراج الصور من ملفات tiff باستخدام مقتطف كود Java. يرجى ملاحظة أن واجهة برمجة التطبيقات (API) تتيح لك أيضًا تغيير الحجم واقتصاص وتدوير قلب الإطار المستخرج. علاوة على ذلك ، تتيح لك إحدى المعلمات المنطقية saveOtherFrames تحديد ما إذا كانت النتيجة ستتضمن جميع الإطارات الأخرى أو إطارًا محددًا فقط.

  • أولاً ، قم بإنشاء كائن من ImagingApi استنادًا إلى بيانات اعتماد العميل الشخصية
  • ثانيًا ، اقرأ محتوى صورة TIFF الأولى باستخدام طريقة readAllBytes (…) وانتقل إلى صفيف البايت []
  • ثالثًا ، قم بإنشاء مثيل لفئة UploadFileRequest حيث نحدد اسم TIFF عبر التخزين السحابي
  • الآن قم بتحميل أول صورة TIFF إلى التخزين السحابي باستخدام طريقة uploadFile (…)
  • الخطوة التالية هي تحديد مؤشر إطار TIFF ، وارتفاع وعرض الإطار المستخرج ، وأصل الاستخراج وتحديد ما إذا كنت تريد الإطار المستخرج في ملاك معين
  • الآن قم بإنشاء كائن GetImageFrameRequest حيث نحدد إدخال صورة TIFF والخصائص المحددة أعلاه
  • استدعاء getImageFrame (…) طريقة ImagingAPI للحصول على إطار TIFF
  • احفظ الإطار المستخرج على محرك الأقراص المحلي باستخدام كائن FileOutputStream
// احصل على ClientID و ClientSecret من https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// خلق كائن التصوير
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// تحميل أول صورة TIFF من النظام المحلي
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// إنشاء ملف طلب تحميل الكائن
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// تحميل أول صورة TIFF إلى التخزين السحابي
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// عرض جديد وارتفاع الإطار المستخرج
Integer newWidth = 1000;
Integer newHeight = 1400;

// أصل لبدء استخراج الإطار
Integer x = 10;
Integer y = 10;

// منطقة مستطيلة لاستخراج الإطار
Integer rectWidth = 900;
Integer rectHeight = 800;

// حدد زاوية الدوران لإطار TIFF المستخرج
String rotateFlipMethod = "Rotate90FlipY";
// ينتج عن تضمين الإطار المحدد فقط وليس الإطارات الأخرى
Boolean saveOtherFrames = false;

// قم بإنشاء كائن طلب لاستخراج إطارات tiff بناءً على تفاصيل محددة
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// يتم إرجاع الإطار المستخرج في تدفق الاستجابة
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// احفظ إطار TIFF المستخرج على التخزين المحلي
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
استخراج إطار شجار

احصل على معاينة إطارات TIFF

يمكن تنزيل نماذج صور TIFF المستخدمة في المثال أعلاه من DeskewSampleImage.tif.

معالجة صور TIFF باستخدام أوامر cURL

هناك طريقة أخرى ملائمة للوصول إلى واجهات برمجة تطبيقات REST وهي عبر أوامر cURL. منذ Aspose.Imaging Cloud يعتمد على بنية REST ، لذلك يمكننا أيضًا استخراج إطارات الصور المشاجرة باستخدام أوامر cURL. الآن الشرط المسبق لهذا النشاط هو إنشاء رمز وصول 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"

بعد إنشاء رمز JWT ، نحتاج إلى تنفيذ الأمر التالي لاستخراج إطار صور TIFF.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff

خاتمة

في هذه المرحلة ، تعلمنا كل التفاصيل الضرورية حول كيفية استخراج الصور من ملفات tiff. لقد اكتشفنا خيار استخراج إطار TIFF باستخدام مقتطف شفرة Java Java أو من خلال أوامر cURL. هناك طريقة أخرى لاختبار الميزات الواعدة لواجهة برمجة التطبيقات وهي عبر SwaggerUI وفي حالة رغبتك في تعديل الكود المصدري لـ SDK ، يمكنك التنزيل إذا كان من GitHub (تم تطوير جميع حزم SDK السحابية لدينا بموجب MIT رخصة).

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

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

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