تغییر اندازه تصویر

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

یکی از ویژگی‌های بارز فایل‌های TIFF قابلیت ذخیره‌سازی چندین تصویر (هر کدام دارای چندین کانال) به عنوان فریم‌های متوالی در یک پشته زمانی یا z-stack از تصاویر است. حال در این مقاله قصد داریم مراحل استخراج یک فریم TIFF، تغییر اندازه و ذخیره آن را به طور جداگانه در حافظه ذخیره سازی توضیح دهیم. عملیات تغییر اندازه تصویر آنلاین به ابعاد جدید (عرض و ارتفاع) و در عین حال ذخیره فریم به روز شده TIFF کمک می کند.

تغییر اندازه تصویر API

Aspose.Imaging Cloud SDK for Java راه حل مبتنی بر REST ما است که شما را قادر می سازد تصاویر شطرنجی، متافایل ها و فتوشاپ را به صورت برنامه نویسی ویرایش، دستکاری و تبدیل به انواع [فرمت های پشتیبانی شده6 کنید. همچنین این ویژگی را برای دستکاری تصاویر TIFF ارائه می دهد، جایی که می توانیم حتی روی فریم های TIFF جداگانه کار کنیم. اکنون، برای شروع استفاده از SDK، باید مرجع آن را در یک پروژه جاوا اضافه کنیم. بنابراین، لطفا جزئیات زیر را در پروژه 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 ندارید، لطفاً با استفاده از آدرس ایمیل معتبر یک حساب کاربری رایگان ایجاد کنید.

تغییر اندازه تصویر آنلاین در جاوا

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

  • ابتدا، یک شی از ImagingApi با استفاده از اعتبار مشتری شخصی سازی شده ایجاد کنید
  • در مرحله دوم، محتوای اولین تصویر TIFF را با استفاده از روش readAllBytes(…) بخوانید و آن را به آرایه بایت[] برگردانید.
  • سوم، یک نمونه از کلاس UploadFileRequest ایجاد کنید که در آن نام تصویر TIFF را ارسال می کنیم.
  • اکنون با استفاده از روش uploadFile(…) اولین تصویر TIFF را در فضای ذخیره سازی ابری آپلود کنید
  • مرحله بعدی تعیین شاخص قاب 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("TiffSampleImage.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 = 400;
Integer newHeight = 600;

// نتیجه فقط شامل قاب مشخص شده است نه فریم های دیگر
Boolean saveOtherFrames = false;

// یک شی درخواست برای استخراج فریم های tiff بر اساس جزئیات مشخص شده ایجاد کنید
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// فریم استخراج شده در جریان پاسخ بازگردانده می شود
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// قاب TIFF استخراج شده را در حافظه محلی ذخیره کنید
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
تغییر اندازه قاب تیف

تغییر اندازه پیش نمایش قاب TIFF

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

با استفاده از دستورات cURL اندازه تصویر را کاهش دهید

با توجه به معماری REST API، می توان از طریق دستورات cURL نیز به آن دسترسی داشت. بنابراین در این بخش، ما قصد داریم در مورد جزئیات نحوه کاهش اندازه تصویر یا استخراج قاب 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/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff

نتیجه

این مقاله جزئیات ساده اما شگفت انگیزی در مورد نحوه تغییر اندازه تصویر (TIFF) با استفاده از جاوا ارائه کرده است. همچنین در این آموزش تمامی مراحل تغییر اندازه فریم TIFF با استفاده از دستورات cURL توضیح داده شده است. لطفاً توجه داشته باشید که گزینه دیگری برای آزمایش قابلیت‌های API از طریق SwaggerUI در یک مرورگر وب است. همچنین، اگر می‌خواهید کد منبع SDK را تغییر دهید، می‌توانید آن را از GitHub دانلود کنید، زیرا تحت مجوز MIT منتشر شده است.

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

مقالات مرتبط

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