API مدرن

مقدمه

به طور تاریخی، Aspose Slides به java.awt وابسته بوده و در API عمومی کلاس‌های زیر را دارد:

از نسخه 24.4 به بعد، این API عمومی به‌عنوان منسوخ اعلام شده است.

به‌منظور حذف وابستگی‌ها به این کلاس‌ها، API به اصطلاح “API مدرن” اضافه شد - یعنی API‌ای که باید به‌جای نسخه منسوخ استفاده شود، که امضای آن شامل وابستگی به BufferedImage است. Graphics2D منسوخ اعلام شده و پشتیبانی آن از API عمومی Slides حذف شده است.

حذف API عمومی منسوخ که وابستگی به System.Drawing دارد، در نسخه 24.8 انجام خواهد شد.

API مدرن

کلاس‌ها و enum‌های زیر به API عمومی افزوده شدند:

  • IImage - نمایانگر تصویر رستر یا برداری.
  • ImageFormat - نمایانگر قالب فایل تصویر.
  • Images - متدهایی برای ایجاد نمونه و کار با رابط IImage.

لطفاً توجه داشته باشید که IImage قابلیت تخلیه (disposable) دارد (این رابط IDisposable را پیاده‌سازی می‌کند و استفاده از آن باید در بلوک using بسته شود یا به روش مناسب دیگری تخلیه شود).

یک سناریوی معمولی برای استفاده از API جدید به شکل زیر است:

from asposeslides.api import Presentation, SaveFormat, Images, ShapeType, ImageFormat
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension

pres = Presentation();

# یک نمونه قابل تخلیه از IImage را از فایل روی دیسک ایجاد کنید.
image = Images.fromFile("image.png");

# یک تصویر PowerPoint ایجاد کنید با افزودن یک نمونه از IImage به تصاویر ارائه.
ppImage = pres.getImages().addImage(image);
image.dispose();

# یک شکل تصویر به اسلاید شماره 1 اضافه کنید
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

# یک نمونه از IImage که نمایانگر اسلاید شماره 1 است را دریافت کنید.
slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));

# تصویر را روی دیسک ذخیره کنید.
slideImage.save("slide1.jpeg", ImageFormat.Jpeg);
slideImage.dispose();

pres.dispose();

جایگزینی کدهای قدیمی با API مدرن

به‌طور کلی، باید فراخوانی متد قدیمی که از ImageIO استفاده می‌کرد را با نسخه جدید جایگزین کنید.

قدیمی:

image_format = "PNG"
buffImage = pres.getSlides().get_Item(0).getThumbnail(Dimension(1920, 1080))
ImageIO.write(buffImage, image_format, File("image.png"))

جدید:

slideImage = pres.getSlides().get_Item(0).getImage(Dimension(1920, 1080));
slideImage.save("image.png", ImageFormat.Png);

دریافت تصویر بندانگشتی اسلاید

کد استفاده‌کننده از API منسوخ:

from asposeslides.api import Presentation
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

slideImage = pres.getSlides().get_Item(0).getThumbnail();
image_format = "PNG"
ImageIO.write(slideImage, image_format, File("slide1.png"))

pres.dispose();

API مدرن:

from asposeslides.api import Presentation, ImageFormat


pres = Presentation("pres.pptx");

slideImage = pres.getSlides().get_Item(0).getImage();
slideImage.save("slide1.png", ImageFormat.Png);
slideImage.dispose();

pres.dispose();

دریافت تصویر بندانگشتی شکل

کد استفاده‌کننده از API منسوخ:

from asposeslides.api import Presentation
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

shapeImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getThumbnail();
image_format = "PNG"
ImageIO.write(shapeImage, image_format, File("shape.png"))

pres.dispose();

API مدرن:

from asposeslides.api import Presentation, ImageFormat


pres = Presentation("pres.pptx");

shapeImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
shapeImage.save("shape.png", ImageFormat.Png);
shapeImage.dispose();

pres.dispose();

دریافت تصویر بندانگشتی ارائه

کد استفاده‌کننده از API منسوخ:

from asposeslides.api import Presentation, RenderingOptions
from javax.imageio import ImageIO
from java.io import File
from java.awt import Dimension


pres = Presentation("pres.pptx");

image_format = "PNG"
rendering_options = RenderingOptions();
bitmaps = pres.getThumbnails(rendering_options, Dimension(1980, 1028));

for index in range(bitmaps.length):
    thumbnail = bitmaps[index];
    ImageIO.write(thumbnail, "PNG", File("slide" + str(index) + ".png"));
    
pres.dispose();

API مدرن:

from asposeslides.api import Presentation, RenderingOptions, ImageFormat
from java.awt import Dimension


pres = Presentation("pres.pptx");

rendering_options = RenderingOptions();
images = pres.getImages(rendering_options, Dimension(1980, 1028));

for index in range(images.length):
    thumbnail = images[index];
    thumbnail.save("slide" + str(index) + ".png", ImageFormat.Png);
    thumbnail.dispose();

pres.dispose();

افزودن تصویر به ارائه

کد استفاده‌کننده از API منسوخ:

from asposeslides.api import Presentation, ShapeType
from javax.imageio import ImageIO
from java.io import File


pres = Presentation();

bufferedImages = ImageIO.read(File("image.png"));
ppImage = pres.getImages().addImage(bufferedImages);

pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

pres.dispose();

API مدرن:

from asposeslides.api import Presentation, ShapeType, Images
from java.awt import Dimension


pres = 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();

متدهای قابل حذف و جایگزین‌های آنها در API مدرن

Presentation

امضای متد امضای متد جایگزین
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

امضای متد امضای متد جایگزین
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

امضای متد امضای متد جایگزین
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) Will be deleted completely
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) Will be deleted completely
public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) Will be deleted completely

Output

امضای متد امضای متد جایگزین
public final IOutputFile add(String path, BufferedImage image) public final IOutputFile add(String path, IImage image)

ImageCollection

امضای متد امضای متد جایگزین
public final IPPImage addImage(BufferedImage image) public final IPPImage addImage(IImage image)

PPImage

امضای متد امضای متد جایگزین
public final BufferedImage getSystemImage() public final IImage getImage()

PatternFormat

امضای متد امضای متد جایگزین
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

امضای متد امضای متد جایگزین
public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) public final IImage getTileIImage(Color background, Color foreground)

پشتیبانی API از Graphics2D متوقف خواهد شد

متدهای با Graphics2D به‌عنوان منسوخ اعلام شده‌اند و پشتیبانی آنها از API عمومی حذف خواهد شد.

بخشی از API که از آن استفاده می‌کند، حذف خواهد شد:

اسلاید