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ől
  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, stream) egy InputStream-ból
  • add(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

IssueCauseJavítás
getCount() 0-ot ad hozzáadás utánAz adatszolgáltatás befejezése előtt lezárt.Biztosítsuk, hogy az InputStream nyitott és olvasható
ImageType.UNKNOWN visszakerültNem támogatott vagy elrontott képadatokEllenőrizze, hogy a fájl egy érvényes PNG, JPEG, GIF, BMP vagy TIFF
A kép helyzete rossz.A sor/részeg indexek helytelenekAz ö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

MethodVisszaadási típusDescription
getName()StringA kép belső neve.
setName(name)voidA belső nevet adja meg.
getUpperLeftRow()intA bal felső sarok nullázs sorában.
setUpperLeftRow(row)voidA bal felső sarokhoz.
getUpperLeftColumn()intA bal felső sarok nullázsolt oszlopja.
setUpperLeftColumn(col)voidA bal felső sarokszemét.
getLowerRightRow()intA jobb alsó sarok nullázás.
setLowerRightRow(row)voidA jobb alsó sorban.
getLowerRightColumn()intA jobb alsó sarok nullás alapú oszlopja.
setLowerRightColumn(col)voidA jobb alsó sarokhoz.
getImageType()ImageTypeA képformátum értékének kimutatása.
getData()byte[]Nyers kép byte-i.
setData(data)voidA nyers kép byte-jai helyettesítik.
getContentType()StringMIME tartalomtípusú szalag.

PictureCollection

MethodVisszaadási típusDescription
getCount()intA munkalap képének száma.
get(index)PictureVisszaadja a képet nullás indexben.
add(...)intBeágyazza a képet; visszaadja az indexét, amely nulla alapú.
removeAt(index)voidEltörli a képet az nullás indexnél.
detectImageType(data)ImageTypeA formátum kimutatása a nyers bájtokból.
extensionFromData(data)StringVisszaadja a képadat fájlkiterjesztését.
contentTypeFromExtension(ext)StringA fájlkiterjesztés MIME típusát adja.

See Also

 Magyar