نحوه استخراج تصویر tiff

نحوه استخراج تصاویر از فایل های TIFF

TIFF TIF مخفف Tag Image File Format و یکی از تصاویر گرافیکی شطرنجی محبوب است که به طور گسترده توسط هنرمندان گرافیک، صنعت انتشارات و عکاسان استفاده می‌شود. TIFF با JPEG، GIF و PNG متفاوت است زیرا یک فرمت “فشرده نشده” است و می تواند داده های تصویری بسیار بیشتری را نسبت به همتایان JPEG خود ذخیره کند. در حال حاضر یکی از ویژگی های برجسته فایل های TIFF قابلیت ذخیره چندین تصویر (هر کدام دارای چندین کانال) به عنوان فریم های متوالی در یک پشته زمانی یا z-stack از تصاویر است. بنابراین در این مقاله، ما قصد داریم جزئیات نحوه استخراج فریم از تصاویر TIFF چند فریمی با استفاده از Java Cloud SDK را بررسی کنیم.

API پردازش تصویر TIFF

ما یک API پردازش تصویر ایجاد کرده‌ایم که قابلیت ویرایش، دستکاری و تبدیل شطرنجی، متافایل، فتوشاپ و سایر [فرمت‌های پشتیبانی شده6 را به انواع فرمت‌های فایل ارائه می‌دهد. اکنون که در مورد دستکاری تصویر TIFF صحبت می کنیم، API بسیار قادر به پردازش تصاویر TIFF است. بنابراین با توجه به محدوده این مقاله، ما قصد داریم از Aspose.Imaging Cloud SDK برای جاوا استفاده کنیم که یک پوشش در اطراف 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 ندارید، لطفاً یک حساب رایگان از طریق آدرس ایمیل معتبر ایجاد کنید. اکنون با استفاده از حساب تازه ایجاد شده وارد شوید و Client ID و Client Secret را در Aspose Cloud Dashboard جستجو/ایجاد کنید.

نحوه استخراج تصویر TIFF در جاوا

بیایید جزئیات نحوه استخراج تصاویر از فایل های tiff با استفاده از قطعه کد جاوا را بررسی کنیم. لطفاً توجه داشته باشید که API همچنین به شما امکان می‌دهد فریم استخراج‌شده را تغییر اندازه، برش و چرخش کنید. علاوه بر این، یکی از پارامترهای بولی saveOtherFrames به شما امکان می دهد مشخص کنید که آیا نتیجه شامل همه فریم های دیگر می شود یا فقط یک فریم مشخص.

  • ابتدا یک شی از ImagingApi بر اساس اعتبار مشتری شخصی سازی شده ایجاد کنید
  • در مرحله دوم، محتوای اولین تصویر TIFF را با استفاده از روش readAllBytes(…) بخوانید و به آرایه بایت[] منتقل کنید.
  • ثالثاً، یک نمونه از کلاس UploadFileRequest ایجاد کنید که در آن نام TIFF را در فضای ذخیره سازی ابری مشخص کنیم.
  • اکنون اولین تصویر TIFF را با استفاده از روش uploadFile(…) در فضای ذخیره سازی ابری آپلود کنید
  • مرحله بعدی این است که شاخص قاب TIFF، ارتفاع و عرض فریم استخراج شده، مبدا استخراج را مشخص کنید و مشخص کنید که آیا فریم استخراج شده را به ویژه فرشته می خواهید یا خیر.
  • اکنون یک شی از GetImageFrameRequest ایجاد کنید که در آن تصویر TIFF ورودی و ویژگی های تعریف شده بالاتر را مشخص می کنیم.
  • برای دریافت فریم TIFF، متد getImageFrame(…) ImagingAPI را فراخوانی کنید
  • فریم استخراج شده را با استفاده از شی 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 Frames را دریافت کنید

نمونه تصاویر TIFF استفاده شده در مثال بالا را می توان از DeskewSampleImage.tif دانلود کرد.

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

یکی دیگر از راه های راحت دسترسی به API های REST از طریق دستورات cURL است. از آنجایی که Aspose.Imaging Cloud مبتنی بر معماری REST است، بنابراین می‌توانیم فریم‌های تصاویر tiff را با استفاده از دستورات 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 را با استفاده از قطعه کد جاوا یا از طریق دستورات cURL بررسی کرده ایم. روش دیگری برای آزمایش ویژگی‌های امیدوارکننده API از طریق SwaggerUI است و در صورتی که می‌خواهید کد منبع SDK را تغییر دهید، می‌توانید آن را از GitHub دانلود کنید (همه کیت‌های توسعه نرم افزاری ابری ما تحت MIT توسعه یافته‌اند. مجوز).

با این وجود، مستندات محصول منبع اطلاعات شگفت انگیزی برای یادگیری سایر ویژگی های هیجان انگیز ارائه شده توسط API است و در نهایت، در صورتی که در حین استفاده از API با مشکلی مواجه شدید، ممکن است برای حل سریع از طریق رایگان به ما مراجعه کنید. تالار گفتمان پشتیبانی محصول.

مقالات مرتبط

لطفا برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: