Képekkel való munka
Képekkel való munka
Aspose.Cells FOSS for Java allows you to embed images directly into A képek a következőkben vannak: a Bizottság által irányított PictureCollection a legfeljebb egy év alatt. Worksheet,és a következők: minden egyes Picture objektum hozzáférést biztosít a képadatokhoz, az ő kotrása a helyzet, az észlelt képtípus és a MIME tartalom típusa.
Overview
Minden munkalap kiemeli a képeket azáltal, hogy Worksheet.getPictures(), amely a PictureCollection.Egy byte képeket adhatsz hozzá. szett, és InputStream,A gyűjtemény segít a programok létrehozásában. a nyers bájtokból származó képtípus felismerésének módszerei, az adatmegoldás a képadatokból származó kiterjesztés, és a MIME tartalomtípusra vonatkozó mapping-kiterjesztést.
A képek elérése a munkalapon
Vissza a… PictureCollection a következők: Worksheet.getPictures().Használja. PictureCollection.getCount() hogy eldöntsük, hány kép van jelen. Az egyes képek hozzáférhetők a nullás index segítségével. PictureCollection.get(index).
Egy kép hozzáadása
Három túlsúly a PictureCollection.add() rendelkezésre állnak, mindegyikük az újonnan hozzáadott kép nullás indexének visszaállításával:
add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, imageData)egy byte-szerkezetbőladd(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, stream)egy InputStream-bóladd(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, fileName)egy fájl útvonalból
// 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);Kép tulajdonságai olvasása
Ha egyszer elkapsz egy… Picture referencia, olvassa el az állomás helyét;, nyers képadatok, észlelt képtípus és MIME tartalomtípust:
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());
}A Raw Bytes-ból származó képtípus felismerése
Használat PictureCollection.detectImageType(data) a Bizottság által az Európai Parlamentnek és a Tanácsnak nyújtott ImageType egy byte array enum értéke, anélkül hogy először beágyaznánk.
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);Egy kép eltávolítása
Használat PictureCollection.removeAt(index) hogy törölje a képet az ő nullázott index:
ws.getPictures().removeAt(0);Tippek és legjobb gyakorlatok
- Használja a
add(..., imageData)túlsúly, ha már van a bájtok memóriában; használja a folyó túlterhelést, hogy elkerülje a nagy fájlok teljes feltöltését. - Call
PictureCollection.detectImageType(data)a kép hitelesítése érdekében. formátum beillesztés előtt. - Az árfolyamok és az oszlopok a nullával alapuló indexek.
Picture.getName()egy belső azonosítót ad vissza, nem pedig az eredeti fájlnevet.- A képek a XLSX-en vannak.
Általános kérdések
| Issue | Cause | Javítás |
|---|---|---|
getCount() 0-ot ad hozzáadás után | Az adatszolgáltatás befejezése előtt lezárt. | Biztosítsuk, hogy az InputStream nyitott és olvasható |
ImageType.UNKNOWN visszakerült | Nem támogatott vagy elrontott képadatok | Ellenőrizze, hogy a fájl egy érvényes PNG, JPEG, GIF, BMP vagy TIFF |
| A kép helyzete rossz. | A sor/részeg indexek helytelenek | Az összes rögzítési paraméterhez nullás alapú indexeket kell használni. |
FAQ
Milyen képformátumokat támogat a beágyazás?
A ImageType Az enum tartalmazza a PNG, JPEG, GIF, BMP, TIFF és EMF formátumokat. formátumok beépíthetők bináris adatként, de ImageType az UNKNOWN.
Hogyan kapom meg a beágyazott kép fájl kiterjesztését?
Call PictureCollection.extensionFromData(picture.getData()) a A kép nyers bájt.
Megoldható-e egy meglévő képkép?
Igen, visszaszerezzük a… Picture a következők: get(index) és hívj. setData(bytes).
Hogy találok egy képet a nevén?
Az összes képet megismételjük getCount() és a következők: get(index) és összehasonlítani. Picture.getName().
Megőrződik-e a képek más formátumban történő mentése?
A kép megőrzése a célformátumtól függ. Az XLSX-térre és vissza teljes mértékben támogatja.
API-referencia összefoglaló
Picture
| Method | Visszaadási típus | Description |
|---|---|---|
getName() | String | A kép belső neve. |
setName(name) | void | A belső nevet adja meg. |
getUpperLeftRow() | int | A bal felső sarok nullázs sorában. |
setUpperLeftRow(row) | void | A bal felső sarokhoz. |
getUpperLeftColumn() | int | A bal felső sarok nullázsolt oszlopja. |
setUpperLeftColumn(col) | void | A bal felső sarokszemét. |
getLowerRightRow() | int | A jobb alsó sarok nullázás. |
setLowerRightRow(row) | void | A jobb alsó sorban. |
getLowerRightColumn() | int | A jobb alsó sarok nullás alapú oszlopja. |
setLowerRightColumn(col) | void | A jobb alsó sarokhoz. |
getImageType() | ImageType | A képformátum értékének kimutatása. |
getData() | byte[] | Nyers kép byte-i. |
setData(data) | void | A nyers kép byte-jai helyettesítik. |
getContentType() | String | MIME tartalomtípusú szalag. |
PictureCollection
| Method | Visszaadási típus | Description |
|---|---|---|
getCount() | int | A munkalap képének száma. |
get(index) | Picture | Visszaadja a képet nullás indexben. |
add(...) | int | Beágyazza a képet; visszaadja az indexét, amely nulla alapú. |
removeAt(index) | void | Eltörli a képet az nullás indexnél. |
detectImageType(data) | ImageType | A formátum kimutatása a nyers bájtokból. |
extensionFromData(data) | String | Visszaadja a képadat fájlkiterjesztését. |
contentTypeFromExtension(ext) | String | A fájlkiterjesztés MIME típusát adja. |