עבודה עם תמונות

עבודה עם תמונות

Aspose.Cells FOSS for Java allows you to embed images directly into תאי לוח העבודה ומחזירים או מוחקים תמונות קיימות.תמונות הן ניהול באמצעות PictureCollection מופיעים על ידי כל אחד Worksheet, ו כל אחד Picture אובייקט מספק גישה לנתונים של התמונה, האנקור שלה מיקום, סוג התמונה המזהה שלה, וסוג התוכן MIME שלה.


סקירה

כל עיתון מציג את התמונות שלו דרך Worksheet.getPictures(), אשר חוזר א PictureCollection.ניתן להוסיף תמונות מתוך ביט. ארדואן, א InputStream, או מסלול קובץ.הקולקציה מספקת עוזר שיטות לזיהוי סוג תמונה מ- byte ירוק, לפתור את הקובץ הרחבה מתוך נתוני תמונה, והרחיבה של מפות לסוג תוכן MIME.


גישה לתמונות על לוח עבודה

להחזיר את PictureCollection דרך Worksheet.getPictures().שימוש PictureCollection.getCount() כדי לקבוע כמה תמונות יש. תמונות בודדות זמינות באמצעות אינדיקטור מבוסס אפס דרך PictureCollection.get(index).


להוסיף תמונה

3 תוצאות של PictureCollection.add() זמינים, כל אחד מהם החזרה של אינדיקטור מבוסס אפס של התמונה שדווחת לאחרונה:

  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, imageData) מתוך ביטה Array
  • 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());
}

זיהוי סוג תמונה מ-Raw Bytes

שימוש PictureCollection.detectImageType(data) כדי לקבוע את ImageType ערך ה-enum של סדרה ביטה ללא שילוב ראשון.

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) כשיש כבר את ה-Byte בזיכרון; השתמשו בהעלאת הזרם כדי למנוע את העלאת קבצים גדולים לחלוטין.
  • שיחת טלפון PictureCollection.detectImageType(data) כדי להעריך את התמונה פורמט לפני ההרכבה.
  • שורות ואנקור הם אינדיקטורים מבוססים על אפס.
  • Picture.getName() יש להחזיר את שם הקובץ המקורי ולא את המקור.
  • התמונות נשמרות על XLSX סיבוב.

בעיות נפוצות

נושאסיבהקבע
getCount() 0 לאחר הוספתהמהדורה נסגרה לפני שהוספת הסתיימה.• להבטיח כי InputStream פתוח וניתן לקרוא.
ImageType.UNKNOWN חזרהנתוני תמונה לא תומכים או שבוריםבדוק אם הקובץ הוא PNG, JPEG, GIF, BMP או TIFF.
התמונה נראית לא נכונהמדד שורה / עמודים לא נכוןהשתמשו באינדיקטורים מבוססי אפס עבור כל הפרמטרים של האנקור

FAQ

אילו פורמטים תמונה תומכים בהרכב?

The ImageType ה-enum מכסה PNG, JPEG, GIF, BMP, TIFF ו-EMF. ניתן להוסיף נתונים כבני, אך יש להם ImageType • על UNKNOWN.

כיצד אני מקבל את הרחבת הקובץ של תמונה מובנית?

שיחת טלפון PictureCollection.extensionFromData(picture.getData()) עם The תמונה של ביטים ירוקים.

האם ניתן להחליף נתוני תמונה קיימים?

כן, להחזיר את Picture דרך get(index) וקוראים setData(bytes).

איך אני יכול למצוא תמונה לפי שם?

צפו בכל התמונות עם getCount() ו get(index) ולהשוות Picture.getName().

האם התמונות נשמרות כאשר הם מאוחסנים בפורמטים אחרים?

שמירה על התמונה תלויה בפורמט היעד. XLSX סיבוב מסלול תומך לחלוטין.


סיכום התייחסות API

תמונה

שיטתסוג החזרהתיאור
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 string.

PictureCollection

שיטתסוג החזרהתיאור
getCount()intמספר התמונות על לוח העבודה.
get(index)Pictureהחזיר את התמונה למדד מבוסס אפס.
add(...)intהוא מביא תמונה; מחזיר את האינדקס המבוסס על אפס.
removeAt(index)voidהסר את התמונה על בסיס אפס.
detectImageType(data)ImageTypeמצא את פורמט התמונה מ- bytes ירוקים.
extensionFromData(data)Stringהחזיר את הרחבה של הקובץ עבור נתוני התמונה.
contentTypeFromExtension(ext)Stringהחזיר את סוג MIME עבור הרחבה של קובץ.

ראה גם

 עברית