استخراج فریم های TIFF

فرمت فایل تصویر برچسب، به اختصار TIFF یا TIF، یک فرمت فایل کامپیوتری برای ذخیره تصاویر گرافیکی شطرنجی است که در میان هنرمندان گرافیک، صنعت نشر و عکاسان محبوب است. TIFF با JPEG، GIF و PNG متفاوت است زیرا یک قالب “فشرده نشده” است. فایل‌های TIFF قابلیت ذخیره چندین تصویر را دارند که هر کدام دارای چندین کانال هستند. به طور معمول، این تصاویر چندگانه نشان دهنده فریم های متوالی در یک پشته زمانی یا z-stack از تصاویر هستند و از این رو هر یک از این تصاویر دارای ابعاد یکسانی هستند.

گزینه‌های دیگری که در TIFF دریافت می‌کنیم، لایه‌ها و صفحاتی هستند که در آن لایه را می‌توان با شفافیتی که جلوه‌های تصویری یا تصاویر روی آن اعمال شده و روی یا زیر یک تصویر قرار می‌گیرند، مقایسه کرد. همانطور که در تصویر زیر نشان داده شده است، تصویر چندین لایه را نشان می دهد. در این مقاله، ما در مورد مراحل استخراج فریم از تصاویر TIFF چند فریمی با استفاده از Aspose.Imaging Cloud SDK for .NET بحث خواهیم کرد.

تصویر TIFF با قاب

نصب SDK

Aspose.Imaging Cloud SDK for .NET یک SDK برنامه نویسی است که در بالای Aspose.Imaging Cloud API توسعه یافته است و تمامی قابلیت های دستکاری تصویر را در اختیار توسعه دهندگان .NET قرار می دهد. بنابراین اولین قدم نصب SDK است که برای دانلود در NuGet و GitHub در دسترس است. دستور زیر را برای نصب SDK از کتابخانه NuGet اجرا کنید.

Install-Package Aspose.Imaging-Cloud

یا به عنوان یک جایگزین، می توانید بسته را با استفاده از NuGet Package Manager در ویژوال استودیو مطابق شکل زیر اضافه کنید. برای جزئیات بیشتر در مورد نحوه نصب Aspose.Cloud SDK می توانید از پیوند زیر دیدن کنید.

Aspose.Imaging Cloud SDK

اکنون برای استفاده از SDK، گام بعدی این است که ClientID شخصی و جزئیات ClientSecret خود را به دست آورید. بنابراین، اولین قدم ایجاد یک حساب کاربری با مراجعه به Aspose.Cloud dashboard است. اگر حساب GitHub یا Google دارید، به سادگی ثبت نام کنید. در غیر این صورت بر روی دکمه Create a new Account کلیک کرده و اطلاعات مورد نیاز را ارائه دهید. اکنون با استفاده از اعتبارنامه وارد داشبورد شوید و بخش Applications را از داشبورد گسترش دهید و به سمت پایین به سمت قسمت Client Credentials حرکت کنید تا Client ID و Client Secret را ببینید.

ClientID و ClientSecret پیش نمایش

با استفاده از دستور cURL فریم های TIFF را استخراج کنید

ابتدا، ما می خواهیم در مورد استخراج فریم های TIFF با استفاده از دستور cURL بحث کنیم، زیرا آنها یکی از راه های راحت دسترسی به API های REST در هر پلتفرمی هستند. صرف نظر از پلت فرم و پیچیدگی های معماری زیربنایی. بنابراین برای استفاده از دستورات cURL، اولین گام این است که JSON Web Token (JWT) را بر اساس ClientID و جزئیات ClientSecret شما که از داشبورد Aspose.Cloud بازیابی شده است، تولید کنید. لطفاً دستور زیر را در ترمینال برای تولید توکن JWT اجرا کنید

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

قبل از ادامه، لطفاً توجه داشته باشید که فریم را می توان با استفاده از یکی از دو API زیر استخراج کرد:

اولین API از شما انتظار دارد که ابتدا یک تصویر را در Cloud Storage آپلود کنید و سپس نام آن را در URL API ارسال کنید. پس از به روز رسانی پارامترهای تصویر، API تصویر به روز شده را در پاسخ برمی گرداند.

از طرف دیگر، با API دوم می توانید مستقیماً تصویر را در بدنه درخواست ارسال کنید. همچنین به شما امکان می دهد با تعیین مقدار پارامتر outPath تصویر به روز شده را در فضای ذخیره سازی ابری ذخیره کنید. با این حال، اگر مقدار را مشخص نکنید، پاسخ حاوی یک تصویر استریم شده است.

اکنون از دستور زیر برای استخراج فریم چهارم از تصویر TiffSampleImage.tiff که قبلاً در فضای ذخیره سازی ابری آپلود شده است، استفاده کنید.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/4?saveOtherFrames=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o myresultant.tiff

نحوه استخراج فریم های TIFF در C#

در این قسمت قصد داریم با استفاده از C#.NET فریم TIFF را استخراج کنیم. لطفا مراحل زیر را دنبال کنید

  • اولین گام این است که یک شی از ImagingApi ایجاد کنید و در عین حال ClientID و ClientSecret را به عنوان آرگومان ارائه کنید.
  • یک شی رشته تعریف کننده تصویر ورودی TIFF ایجاد کنید
  • برای تعیین فریمی که باید استخراج شود، یک عدد صحیح ایجاد کنید
  • برای تعیین ابعاد فریم استخراج شده، اشیاء عدد صحیح ایجاد کنید
  • مرحله بعدی ایجاد یک شی GetImageFrameRequest است که نام TIFF ورودی، شناسه فریم و سایر پارامترهای مربوط به ابعاد فریم استخراج شده را به عنوان آرگومان می گیرد.
  • ماقبل آخر، روش GetImageFrame(..) ImagingApi را فراخوانی کنید که شی GetImageFrameRequest را به عنوان آرگومان ورودی می گیرد.
  • در نهایت خروجی را ذخیره کنید تا درایو بارگذاری شود
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/

// یک نمونه از ImagingApi ایجاد کنید
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// تصویر TIFF ورودی در فضای ذخیره‌سازی ابری موجود است
String fileName = "TiffSampleImage.tiff";

int? frameId = 5; // Index of a frame
int? newWidth = 300;
int? newHeight = 450;
int? x = 10;
int? y = 10;
int? rectWidth = 200;
int? rectHeight = 300;

string rotateFlipMethod = "RotateNoneFlipNone";

// نتیجه فقط شامل قاب مشخص شده خواهد بود
bool? saveOtherFrames = false;

string folder = null; // Input file is saved at the root of the storage
string storage = null; // We are using default Cloud Storage

GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest(fileName, frameId, newWidth, newHeight,
                                x, y, rectWidth, rectHeight, rotateFlipMethod, saveOtherFrames, folder, storage);

Stream imageFrame = imagingApi.GetImageFrame(getImageFrameRequest);

// تصویر به روز شده را در حافظه محلی ذخیره کنید
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

لطفاً توجه داشته باشید که ویژگی rotateFlipMethod می تواند یکی از مقادیر زیر را داشته باشد

روش RotateFlip (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate0X0 ate90FlipY، RotateNoneFlipNone، RotateNoneFlipX، RotateNoneFlipXY، RotateNoneFlipY).پیش فرض RotateNoneFlipNone است.

نتیجه گیری

استخراج فریم های TIFF از TIFF چند فریمی در مقاله فوق توضیح داده شده است. جدا از استخراج فریم، API شما را قادر می‌سازد تغییر اندازه فریم‌های TIFF، دریافت ویژگی‌های فریم TIFF، برش یک فریم TIFF، RotateFlip a TIFF frame، در صورتی که هنگام استفاده از API با مشکلی مواجه شدید، لطفاً از طریق [تالار گفتمان پشتیبانی رایگان21 با ما تماس بگیرید.

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