کار با تصاویر
کار با تصاویر
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)از یک InputStreamadd(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 دور نگه داشته می شوند.
مسائل مشترک
| Issue | Cause | اصلاحی |
|---|---|---|
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 برای یک فایل افزونه. |