Resimler ile çalışmak

Resimler ile çalışmak

Aspose.Cells FOSS for Java allows you to embed images directly into çalışma sayfası hücreleri ve mevcut resimleri geri almak veya kaldırmak. resimler Yönetilen yoluyla PictureCollection Her birinin gösterdiği Worksheet,ve Her biri Picture nesne, görüntü verilerine erişim sağlar, ankerleri pozisyonu, tespit edilmiş görüntü tipi ve MIME içerik tipi.


Overview

Her çalışma sayfası kendi resimlerini gösterir. Worksheet.getPictures(), A’ya geri dönen PictureCollection.Bir byte’den resim ekleyebilirsiniz. Array, bir InputStream, ya da bir dosya yolu. koleksiyon yardımcı sağlar -Kuru byte görüntü türünü tespit etme yöntemleri, dosyayı çözmek için görüntü verilerinden uzantı ve MIME içerik türüne haritalama uzanta.


Bir çalışma sayfasındaki resimlere erişmek

Retrade için PictureCollection yolda Worksheet.getPictures().Kullanım PictureCollection.getCount() Kaç fotoğrafın var olduğunu belirlemek için. Bireysel resimler sıfır tabanlı indekse ile erişilebilir PictureCollection.get(index).


Bir resim eklemek

Üç aşırı yükleme PictureCollection.add() Her biri mevcut, her biri Yeni eklenen resmin sıfır tabanlı endeksini geri getirmek:

  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, imageData) Bir byte array
  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, stream) Bir InputStream’dan
  • add(upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn, fileName) Bir dosya yolundan
// 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);

Resim Özellikleri Okuma

Bir kez tuttuğunuzda bir Picture Anker pozisyonunu okuyun, kaynaklı görüntü verileri, tespit edilmiş görünüm tipi ve MIME içerik tipi:

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’ten Görüntü Türü Keşfedin

Kullanım PictureCollection.detectImageType(data) belirlemek için, ImageType Bir byte array değerini ilk olarak yerleştirmeden.

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);

Bir resim kaldırmak

Kullanım PictureCollection.removeAt(index) Bir resim ile silinmek için 0 basılı indeksleri:

ws.getPictures().removeAt(0);

İpuçları ve En İyi Uygulamalar

  • Kullanmak için add(..., imageData) Bu kadar yüklü olduğunuzda, zaten bahteleriniz var. hafıza; büyük dosyaları tamamen yüklemek için akış aşırı yük kullanın.
  • Call PictureCollection.detectImageType(data) Görüntüyi doğrulamak için Birleşmeden önce formatı.
  • Anchor satırları ve sütunları sıfır tabanlı göstergelerdir.
  • Picture.getName() Bir fil adı değil, bir iç kimlik kaynağı geri getirir.
  • Resimler XLSX yuvarlak yolda saklanır.

ortak sorunlar

IssueCauseFix
getCount() 0 ekleyerek geri dönerEkleyin bitmeden önce akış kapandıInputStream açık ve okunabilir olduğundan emin olun.
ImageType.UNKNOWN Geri DönüşDesteklenmemiş veya yolsuz görüntü verileriDosyanın geçerli bir PNG, JPEG, GIF, BMP veya TIFF olduğunu kontrol edin.
Görüntü pozisyonu yanlış görünüyorSütun/kolon göstergeleri yanlıştırTüm anchor parametreleri için sıfır tabanlı göstergeler kullanın.

FAQ

Hangi görüntü biçimleri yerleştirmek için desteklenir?

O zamanlar ImageType enum PNG, JPEG, GIF, BMP, TIFF ve EMF’yi kapsamaktadır. İkili veriler olarak birleştirilebilir, ancak bir ImageType • Üzerine UNKNOWN.

Bir içerikli resmin dosya uzantısını nasıl elde edebilirim?

Call PictureCollection.extensionFromData(picture.getData()) ile de Fotoğraflar çamurlu.

Mevcut bir resim verilerini değiştirebilir miyim?

Evet. geri dönüş yapın Picture yolda get(index) ve çağrı setData(bytes).

Bir resim nasıl bulabilirim?

Tüm resimlerin üzerine bakın getCount() ve get(index) Karşılaştırma Picture.getName().

Resimler diğer formatta kaydedildiğinde muhafaza edilir?

Resim koruma hedef formatına bağlıdır. XLSX yuvarlak yol tamamen desteklenir.


API Referans Özetleri

Picture

MethodGeri Dönüş TürüDescription
getName()StringResmin iç adı.
setName(name)voidİç adı koymak.
getUpperLeftRow()int0 basılı üst sol anchor satır.
setUpperLeftRow(row)voidYukarıdaki ankerin sol kısmını yapıştırın.
getUpperLeftColumn()int0 tabanlı sütun, üst sol anchor.
setUpperLeftColumn(col)voidYukarıdaki ankar sütunu oluşturun.
getLowerRightRow()int0’a dayalı alt sağ anchor satır.
setLowerRightRow(row)voidsağ alt ankar çizgisi yapıştırın.
getLowerRightColumn()int0 tabanlı sütun sağ alt ankor.
setLowerRightColumn(col)voidsağ alt kısmı ankar sütunu oluşturur.
getImageType()ImageTypeGörüntü format enum değerini tespit eder.
getData()byte[]Yakıt görüntüsü bytes.
setData(data)voidYakıt görüntüsü byteyi değiştirir.
getContentType()StringMIME içerik türü string.

PictureCollection

MethodGeri Dönüş TürüDescription
getCount()intÇalışma sayfasındaki resim sayısı.
get(index)PictureResim sıfır tabanlı indekse geri döner.
add(...)intBir görüntü içerir; sıfır tabanlı endeksini geri getirir.
removeAt(index)void0 tabanlı indekslere göre görüntü kaldırın.
detectImageType(data)ImageTypeGörüntü biçimini ham bytelerden tespit eder.
extensionFromData(data)StringDosya uzantısını görüntü verileri için geri getirir.
contentTypeFromExtension(ext)StringDosya uzantısı için MIME tipi iade edilir.

See Also

 Türkçe