Modern API ile Görüntü İşlemeyi Geliştirin
Giriş
Tarihsel olarak, Aspose Slides, java.awt’e bağımlıdır ve genel API’sinde aşağıdaki sınıfları içerir:
24.4 sürümünden itibaren bu genel API kullanımdan kaldırılmış olarak ilan edilmiştir.
Bu sınıflara olan bağımlılıklardan kurtulmak için sözde “Modern API"yi ekledik – yani, kullanım dışı bırakılanın yerine kullanılacak API, imzalarında BufferedImage bağımlılıkları bulunan. Graphics2D kullanım dışı bırakılmış ve desteği genel Slides API’sinden kaldırılmıştır.
Mevcut sürümlerde, java.awt türlerine bağımlı olan genel API’yi eski/kullanımdan kaldırılmış olarak değerlendirin. Yeni kodlar için ve mevcut görüntü işleme iş akışlarını taşırken Modern API’yi kullanın.
Modern API
Aşağıdaki sınıflar ve enum’lar genel API’ye eklendi:
- IImage - raster veya vektör görüntüyü temsil eder.
- ImageFormat - görüntünün dosya biçimini temsil eder.
- Images - IImage sınıfını örneklemek ve onunla çalışmak için yöntemler.
Not: IImage atık edilebilir (kullanımdan sonra atılmalıdır).
getImage tek bir slayt veya şekil oluşturmak için kullanılır. getImages birden fazla sunum slaytını oluşturmak için kullanılır. Görüntüleri yüklemek için Images yöntemlerini, bir sunuma eklemek için addImage ile [IImage] ve mevcut bir sunum görüntüsünü güncellemek için replaceImage ile [IImage] kullanın.
Yeni API’yi kullanmanın tipik bir senaryosu aşağıdaki gibi görünebilir:
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
use aspose\slides\ImageFormat;
use aspose\slides\Images;
$pres = new Presentation();
# diskteki dosyadan IImage'in kullanılabilir bir örneğini oluşturur.
$image = Images::fromFile("image.png");
# bir IImage örneğini sunumun resimlerine ekleyerek PowerPoint resmi oluşturur.
$ppImage = $pres->getImages()->addImage($image);
$image->dispose();
# slayt #1 üzerine bir resim şekli ekle
$pres->getSlides()->get_Item(0)->getShapes()->addPictureFrame(ShapeType::Rectangle, 10, 10, 100, 100, $ppImage);
$dimension = new Java("java.awt.Dimension", 1920, 1080);
# slayt #1'i temsil eden IImage örneğini alır.
$slideImage = $pres->getSlides()->get_Item(0)->getImage($dimension);
# resmi diske kaydeder.
$slideImage->save("slide1.jpeg", ImageFormat::Jpeg);
$slideImage->dispose();
$pres->dispose();
Eski Kodu Modern API ile Değiştirme
Genel olarak, BufferedImage ve ImageIO kullanan çağrıları, IImage kullanan yeni yöntemlerle değiştirmeniz gerekir.
Legacy/deprecated API:
$dimension = new Java("java.awt.Dimension", 1920, 1080);
$slideImage = $pres->getSlides()->get_Item(0)->getThumbnail($dimension);
$imageio = new Java("javax.imageio.ImageIO");
$javafile = new Java("java.io.File", "image.png");
$imageio->write($slideImage, "PNG", $javafile);
Modern API:
$dimension = new Java("java.awt.Dimension", 1920, 1080);
$slideImage = $pres->getSlides()->get_Item(0)->getImage($dimension);
$slideImage->save("image.png", ImageFormat::Png);
$slideImage->dispose();
Slayt Küçük Resmi Alma
Legacy/deprecated API:
use aspose\slides\Presentation;
$pres = new Presentation("pres.pptx");
$slideImage = $pres->getSlides()->get_Item(0)->getThumbnail();
$imageio = new Java("javax.imageio.ImageIO");
$javafile = new Java("java.io.File", "slide1.png");
$imageio->write($slideImage, "PNG", $javafile);
$pres->dispose();
Modern API:
use aspose\slides\Presentation;
use aspose\slides\ImageFormat;
$pres = new Presentation("pres.pptx");
$slideImage = $pres->getSlides()->get_Item(0)->getImage();
$slideImage->save("slide1.png", ImageFormat::Png);
$slideImage->dispose();
$pres->dispose();
Şekil Küçük Resmi Alma
Legacy/deprecated API:
use aspose\slides\Presentation;
$pres = new Presentation("pres.pptx");
$shapeImage = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0)->getThumbnail();
$imageio = new Java("javax.imageio.ImageIO");
$javafile = new Java("java.io.File", "shape.png");
$imageio->write($shapeImage, "PNG", $javafile);
$pres->dispose();
Modern API:
use aspose\slides\Presentation;
use aspose\slides\ImageFormat;
$pres = new Presentation("pres.pptx");
$shapeImage = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0)->getImage();
$shapeImage->save("shape.png");
$shapeImage->dispose();
$pres->dispose();
Sunum Küçük Resmi Alma
Legacy/deprecated API:
use aspose\slides\Presentation;
use aspose\slides\RenderingOptions;
$pres = new Presentation("pres.pptx");
$renderingOptions = new RenderingOptions();
$dimension = new Java("java.awt.Dimension", 1920, 1080);
$bitmaps = $pres->getThumbnails($renderingOptions, $dimension);
for ($i = 0; $i < count(java_values($bitmaps)); $i++)
{
$thumbnail = $bitmaps[$i];
$imageio = new Java("javax.imageio.ImageIO");
$javafile = new Java("java.io.File", "slide" . $i . ".png");
$imageio->write($thumbnail, "PNG", $javafile);
}
$pres->dispose();
Modern API:
use aspose\slides\Presentation;
use aspose\slides\ImageFormat;
use aspose\slides\RenderingOptions;
$pres = new Presentation("pres.pptx");
$renderingOptions = new RenderingOptions();
$dimension = new Java("java.awt.Dimension", 1920, 1080);
$images = $pres->getImages($renderingOptions, $dimension);
for ($i = 0; $i < count(java_values($images)); $i++)
{
$thumbnail = $images[$i];
$thumbnail->save("slide" . $i . ".png", ImageFormat::Png);
}
$pres->dispose();
Sunuma Resim Ekleme
Legacy/deprecated API:
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
$pres = new Presentation();
$imageio = new Java("javax.imageio.ImageIO");
$javafile = new Java("java.io.File", "image.png");
$bufferedImages = $imageio->read($javafile);
$ppImage = $pres->getImages()->addImage($bufferedImages);
$pres->getSlides()->get_Item(0)->getShapes()->addPictureFrame(ShapeType::Rectangle, 10, 10, 100, 100, $ppImage);
$pres->dispose();
Modern API:
use aspose\slides\Presentation;
use aspose\slides\Images;
use aspose\slides\ShapeType;
$pres = new Presentation();
$image = Images::fromFile("image.png");
$ppImage = $pres->getImages()->addImage($image);
$image->dispose();
$pres->getSlides()->get_Item(0)->getShapes()->addPictureFrame(ShapeType::Rectangle, 10, 10, 100, 100, $ppImage);
$pres->dispose();
Deprecated Methods and Their Replacement in Modern API
Presentation
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) |
| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) |
| public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) |
| public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) |
| public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) |
| public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) |
Shape
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final BufferedImage getThumbnail() | public final IImage getImage() |
| public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) |
Slide
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final BufferedImage getThumbnail() | public final IImage getImage() |
| public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) |
| public final BufferedImage getThumbnail(IRenderingOptions options) | public final IImage getImage(IRenderingOptions options) |
| public final BufferedImage getThumbnail(IRenderingOptions options, float scaleX, float scaleY) | public final IImage getImage(IRenderingOptions options) |
| public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) |
| public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) |
| public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) |
| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | No Modern API replacement |
| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | No Modern API replacement |
| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | No Modern API replacement |
Output
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) |
ImageCollection
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) |
PPImage
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final BufferedImage getSystemImage() | public final IImage getImage() |
PatternFormat
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) |
| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) |
PatternFormatEffectiveData
| Metod İmzası | Yerine Koyulan Metod İmzası |
|---|---|
| public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) |
API Support for Graphics2D
Graphics2D içeren yöntemler kullanımdan kaldırılmıştır ve doğrudan Modern API karşılığı yoktur.
Graphics2D‘ye render yapan API yerine Modern API görüntü renderleme yöntemlerini kullanın:
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)
- public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)
SSS
Neden Graphics2D kaldırıldı?
Graphics2D desteği, render ve görüntülerle çalışmayı birleştirmek, platforma özgü bağımlılıkları ortadan kaldırmak ve IImage ile çapraz platform bir yaklaşım benimsemek için genel API’de kullanımdan kaldırılmıştır. Graphics2D‘ye render etmek yerine getImage veya getImages kullanın.
Pratik olarak IImage kullanmanın BufferedImage karşısındaki faydası nedir?
IImage raster ve vektör görüntülerle çalışmayı birleştirir ve ImageFormat aracılığıyla çeşitli biçimlerde kaydetmeyi basitleştirir.
Modern API, küçük resim oluşturma performansını etkiler mi?
getThumbnail‘dan getImage‘a geçiş senaryoları kötüleştirmez: yeni yöntemler, seçenekler ve boyutlarla aynı yetenekleri sunar ve render seçeneklerine destek verir. Kazanç veya kayıp senaryoya bağlıdır, ancak fonksiyonel olarak değişimler eşdeğerdir.