تعداد زیادی از تصاویر شطرنجی که برای استفاده کاری و شخصی دریافت می کنیم، تصاویر اسکن شده یا از طریق اسکنر دیجیتال هستند یا ممکن است تصویری از دستگاه تلفن همراه باشند. بنابراین احتمال زیادی وجود دارد که متن داخل یک تصویر به درستی تراز نشده باشد و در حاشیه صفحه به صورت افقی یا عمودی اجرا شود. به عبارت ساده، تصاویر اسکن شده اغلب روی اسکنر کج می شوند (کاغذ جابجا شد/چرخش شد). اکنون برای حل چنین مسائلی، تکنیکی به نام deskewing را انتخاب می کنیم که فرآیندی است که در آن چولگی با چرخش یک تصویر به همان میزان کج آن اما در جهت مخالف حذف می شود. ویژگی Deskew در پردازش خودکار تصویر، زمانی که تصاویر از یک اسکنر می آیند، بسیار مفید است.
اکنون در این مقاله، به جزئیات نحوه Deskew تصویر با استفاده از Java Cloud SDK می پردازیم. بنابراین تابع deskew در دو مرحله کار می کند یعنی زاویه انحراف تصویر را تشخیص می دهد و سپس تصویر را می چرخاند تا انحراف را اصلاح کند. میتوانیم این عمل را روی فکسهای دریافتی اعمال کنیم و با استفاده از اطلاعات (متن) روی تصویر، زاویه چرخش را محاسبه کنیم، نه حاشیههای کاغذ و نیاز را انجام دهیم. با این وجود، ما می دانیم که عملیات Deskew تصویر را می توان بر روی تصاویر رنگی 1 بیتی، 8 بیتی و 24 بیتی انجام داد.
Deskew Image API
به منظور پشتیبانی از تصویر، API مبتنی بر REST داریم که قابلیت دستکاری فایل تصاویر در Cloud را ارائه می دهد. اکنون برای برنامه های جاوا، ما به طور خاص Aspose.Imaging Cloud SDK for Java را توسعه داده ایم که به شما امکان می دهد قابلیت های پردازش تصویر را از طریق کد جاوا پیاده سازی کنید. اکنون برای Deskew تصاویر با استفاده از Java cloud SDK، اولین قدم اضافه کردن مرجع آن در پروژه جاوا با قرار دادن اطلاعات زیر در pom.xml (پروژه نوع ساخت maven) است.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://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 جستجو/ایجاد کنید.
Deskew Image Online با استفاده از جاوا
بیایید جزئیات مربوط به نحوه جداسازی تصویر با استفاده از قطعه کد جاوا را بررسی کنیم. برای این مثال، تصویر TIFF را از درایو محلی بارگیری می کنیم و عملیات عکس رومیزی را اعمال می کنیم. سپس فایل حاصل در فضای ذخیره سازی ابری ذخیره می شود.
- ابتدا یک شی از ImagingApi بر اساس اعتبار مشتری شخصی سازی شده ایجاد کنید
- در مرحله دوم، یک متغیر بولی ایجاد کنید که نشان می دهد اندازه تصویر به طور متناسب تغییر می کند
- اکنون محتوای منبع TIFF را با استفاده از روش readAllBytes(…) بخوانید و به آرایه بایت[] منتقل کنید.
- گام بعدی ایجاد یک نمونه از CreateDeskewedImageRequest است که به آرایه بایت، پارامتر اختیاری برای رنگ پسزمینه و نام عکس حاصله نیاز دارد.
- در نهایت، متد createDeskewedImage(…) را برای deskew image فراخوانی کنید. TIFF حاصل در فضای ذخیره سازی ابری ذخیره می شود
// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// ایجاد شی تصویربرداری
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// متغیر را تنظیم کنید تا اندازه تصویر غیرمقاومت به تناسب تغییر کند
boolean resizeProportionally = true;
// اطلاعات رنگ پس زمینه
String bkColor = "white";
// فایل را از درایو محلی بارگیری کنید
File f = new File("DeskewSampleImage.tiff");
// محتوای آرایه تصویر TIFF به بایت را بخوانید
byte[] inputStream = Files.readAllBytes(f.toPath());
// یک آبجکت برای تعریف ویژگی های تصویر deskew ایجاد کنید
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);
// عکس را جدا کنید و خروجی را در فضای ذخیره سازی ابری ذخیره کنید
imageApi.createDeskewedImage(request);
اکنون اگر میخواهید TIFF حاصل را در درایو محلی/شبکه ذخیره کنید، لطفاً از قطعه کد زیر استفاده کنید.
// ClientID و ClientSecret را از https://dashboard.aspose.cloud/ دریافت کنید
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// ایجاد شی تصویربرداری
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// متغیر را تنظیم کنید تا اندازه تصویر غیرمقاومت به تناسب تغییر کند
boolean resizeProportionally = true;
// اطلاعات رنگ پس زمینه
String bkColor = "white";
// فایل را از درایو محلی بارگیری کنید
File f = new File("DeskewSampleImage.tif");
// محتوای آرایه تصویر TIFF به بایت را بخوانید
byte[] inputStream = Files.readAllBytes(f.toPath());
// یک آبجکت برای تعریف ویژگی های تصویر deskew ایجاد کنید
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);
// عکس را رو به رو کنید و خروجی را به عنوان شی جریان برگردانید
byte[] updatedImage = imageApi.createDeskewedImage(request);
// مسیر ذخیره تصویر TIFF به روز شده
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();
// با API تماس بگیرید تا عکس را تغییر دهید و در درایو محلی ذخیره کنید
Files.write(path, updatedImage);
نمونه تصویر TIFF استفاده شده در مثال بالا را می توان از DeskewSampleImage.tif دانلود کرد.
PDF را با استفاده از دستورات cURL پاک کنید
ممکن است ما یک فایل PDF حاوی تصاویر غیرمجاز دریافت کنیم، بنابراین یک راه حل سریع این است که تصاویر را از فایل پی دی اف استخراج کنیم و سپس تصاویر را پاکسازی کنیم. اکنون برای انجام این نیاز، میخواهیم از دو API Cloud در اینجا استفاده کنیم، یعنی Aspose.PDF Cloud برای استخراج تصاویر از فایل PDF و Aspose.Imaging Cloud برای جداسازی عکسها. با این حال، قبل از انجام هر عملیاتی، ابتدا باید یک نشانه دسترسی 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 را داریم، باید تصاویر PDF را با استفاده از GrayscaleImage API Aspose.PDF Cloud استخراج کنیم. تصاویر با فرمت TIFF استخراج شده و در فضای ذخیره سازی ابری ذخیره می شوند.
curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
اکنون که تصاویر از فایل PDF با فرمت TIFF استخراج می شوند، اکنون باید DeskewImage API Aspose.Imaging Cloud را فراخوانی کنیم تا تصویر deskew شود. از آنجایی که فایل حاصل در جریان پاسخ بازگردانده می شود، بنابراین می توانیم آن را در درایو محلی خود ذخیره کنیم.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff
نتیجه
تا این زمان، ما چند مرحله شگفتانگیز و ساده برای پاک کردن تصویر و همچنین پاکسازی PDF با استفاده از Java cloud SDK آموختهایم. بنابراین اکنون میتوانیم نیازهای خود را با استفاده از قطعه کد جاوا یا با استفاده از دستورات cURL انجام دهیم. در عین حال، ما به شدت شما را تشویق میکنیم که [مستندات محصول11 را بررسی کنید تا درباره سایر ویژگیهای هیجانانگیز ارائهشده توسط API بیشتر بدانید.
لطفاً توجه داشته باشید که همه SDK های ابری ما تحت مجوز MIT توسعه یافته اند، بنابراین کد منبع کامل را می توان از GitHub دانلود کرد. در نهایت، اگر در حین استفاده از API به مشکلی برخورد کردید، ممکن است از طریق تالار گفتمان پشتیبانی محصول برای حل سریع به ما مراجعه کنید.
مقالات مرتبط
لطفا برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: