کار با تصاویر

کار با تصاویر

Aspose.Cells FOSS for Java allows you to embed images directly into صفحه کار سلول ها و گرفتن یا حذف تصاویر موجود. مدیریت شده از طریق PictureCollection در هر یک از آن ها نشان داده شده است Worksheet,و هر کدام Picture موضوع دسترسی به داده های تصویر، آنکور آن را فراهم می کند. موقعیت، نوع تصویر شناسایی شده و نوع محتوا MIME آن.


نمای کلی

هر کارگاه عکس های خود را از طریق Worksheet.getPictures(), که به یک PictureCollection.شما می توانید عکس ها را از یک بایت اضافه کنید. آریا، یک InputStream,یا یک مسیر فایل. مجموعه کمک می کند روش های تشخیص نوع تصویر از بایت های خام، حل فایل افزونه از داده های تصویر و نقشه برداری به نوع محتوا MIME.


دسترسی به تصاویر در یک ورودی

بازگرداندن آن PictureCollection از طریق Worksheet.getPictures().استفاده از PictureCollection.getCount() برای تعیین تعداد عکس ها در حال حاضر. تصاویر فردی از طریق شاخص صفر قابل دسترسی هستند. PictureCollection.get(index).


اضافه کردن یک تصویر

سه بار بارگذاری از PictureCollection.add() در دسترس هستند، هر یک از بازگرداندن شاخص صفر مبتنی بر تصویر تازه اضافه شده:

  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, imageData) از یک بایت آرری
  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, stream) از یک InputStream
  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, fileName) از یک مسیر فایل
// Embed an image from bytes into cells A1:C5
byte[] imgData = Files.readAllBytes(Paths.get("logo.png"));
int idx = ws.getPictures().add(0, 0, 4, 2, imgData);

خواندن ویژگی های تصویر

وقتی شما یک Picture در این مطلب به خواندن موقعیت آنکارا می پردازیم., اطلاعات تصویر خام، نوع تصویر شناسایی شده و نوع محتوا MIME:

PictureCollection pics = ws.getPictures();
for (int i = 0; i < pics.getCount(); i++) {
    Picture p = pics.get(i);
    System.out.printf("Name=%s type=%s anchor=[%d,%d]-[%d,%d]%n",
        p.getName(), p.getImageType(),
        p.getUpperLeftRow(), p.getUpperLeftColumn(),
        p.getLowerRightRow(), p.getLowerRightColumn());
}

تشخیص نوع تصویر از بیت های خام

استفاده از PictureCollection.detectImageType(data) برای تعیین آن ImageType ارزش یک بایت بدون اینکه اول آن را درآورد.

PictureCollection pics = ws.getPictures();
byte[] data = Files.readAllBytes(Paths.get("chart.png"));
ImageType type = pics.detectImageType(data);
String ext  = pics.extensionFromData(data);
String mime = pics.contentTypeFromExtension(ext);
System.out.printf("type=%s ext=%s mime=%s%n", type, ext, mime);

حذف یک تصویر

استفاده از PictureCollection.removeAt(index) برای حذف یک تصویر از طریق شاخص های مبتنی بر صفر:

ws.getPictures().removeAt(0);

راهنمایی ها و بهترین شیوه ها

  • استفاده از آن add(..., imageData) بار بیش از حد زمانی که شما در حال حاضر بایت ها در حافظه؛ از بار بیش از حد جریان برای جلوگیری از شارژ فایل های بزرگ به طور کامل استفاده کنید.
  • Call PictureCollection.detectImageType(data) برای تایید تصویر قبل از ساختن فرمول.
  • خطوط و ستون های آنکور شاخص های صفر هستند.
  • Picture.getName() یک شناسه داخلی را بازگردانید، نه نام اصلی.
  • عکس ها در XLSX دور نگه داشته می شوند.

مسائل مشترک

IssueCauseاصلاحی
getCount() 0 بعد از اضافه کردنجریان قبل از اضافه شدن به پایان رسید بسته شداطمینان حاصل کنید که InputStream باز و قابل خواندن است.
ImageType.UNKNOWN بازگشتاطلاعات تصویر غیرقابل پشتیبانی یا فاسدفایلهای معتبر PNG، JPEG، GIF، BMP یا TIFF را بررسی کنید.
موقعیت تصویر اشتباه است.شاخص های ستون / ردیف اشتباه هستنداستفاده از شاخص های صفر برای تمام پارامترهای آنکور

FAQ

کدام فرمت های تصویر برای ادغام پشتیبانی می شوند؟?

و این ImageType enum شامل PNG، JPEG، GIF، BMP، TIFF و EMF است. فرمت ها می توانند به عنوان داده های باینری ادغام شوند اما دارای یک ImageType از UNKNOWN.

چگونه می توانم فایل افزونه یک تصویر درگیر را دریافت کنم؟?

Call PictureCollection.extensionFromData(picture.getData()) با این که تصویر بایت های خام.

آیا می توانم اطلاعات تصویر موجود را جایگزین کنم؟?

بله، بازگردانید Picture از طریق get(index) و تماس setData(bytes).

چگونه می توانم عکس را با نام پیدا کنم؟?

در تمام عکس ها با getCount() و get(index) مقایسه کنید Picture.getName().

آیا تصاویر در هنگام ذخیره به فرمت های دیگر حفظ می شوند؟?

حفظ تصویر به فرمت هدف بستگی دارد. XLSX چرخش به طور کامل پشتیبانی می شود.


API خلاصه ای از ارجاعات

Picture

Methodنوع بازگشتDescription
getName()Stringنام داخلی این تصویر.
setName(name)voidنام داخلی را وارد کنید.
getUpperLeftRow()intخط صفر از آنکور سمت چپ بالا.
setUpperLeftRow(row)voidدر سمت چپ آنکارا قرار دهید.
getUpperLeftColumn()intستون صفر در آنکور سمت چپ بالا.
setUpperLeftColumn(col)voidدر سمت چپ آنکارا قرار دهید.
getLowerRightRow()intخط صفر پایه آنکور سمت راست پایین.
setLowerRightRow(row)voidدر سمت راست آنکارا قرار دهید.
getLowerRightColumn()intستون صفر پایه آنکور سمت راست پایین.
setLowerRightColumn(col)voidدر سمت راست پایین ستون آنکور قرار دهید.
getImageType()ImageTypeمشخص شده در قالب تصویر enum.
getData()byte[]بایت های تصویر خام.
setData(data)voidجایگزین بایت های تصویر خام می شود.
getContentType()Stringنوع محتوا MIME است.

PictureCollection

Methodنوع بازگشتDescription
getCount()intتعداد عکس ها در صفحه کار.
get(index)Pictureتصویر را به شاخص صفر برمی گرداند.
add(...)intیک تصویر را وارد می کند؛ شاخص صفر آن را باز می گرداند.
removeAt(index)voidتصویر را در شاخص صفر حذف کنید.
detectImageType(data)ImageTypeاین تصویر را از بایت های خام تشخیص می دهد.
extensionFromData(data)Stringبازگرداندن فایل برای داده های تصویر.
contentTypeFromExtension(ext)Stringبازگشت نوع MIME برای یک فایل افزونه.

همچنین ببینید:

 فارسی