プレゼンテーションでの画像操作 — Aspose.Slides FOSS for .NET
Aspose.Slides FOSS for .NET は、プレゼンテーションの共有画像コレクションに画像を埋め込み、PictureFrame シェイプを使用してスライドに表示できます。画像は FillType.Picture を介してシェイプの背景フィルとしても使用できます。
ファイルから画像を追加
ディスクから画像バイトを読み込み、prs.Images.AddImage() を使用してプレゼンテーションの画像コレクションに追加します。その後、画像をスライド上に PictureFrame として配置します:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
// Add the image to the shared collection
var imageData = File.ReadAllBytes("logo.png");
var img = prs.Images.AddImage(imageData);
// Place it on the slide as a PictureFrame
var slide = prs.Slides[0];
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 50, 50, 300, 200, img);
prs.Save("with-image.pptx", SaveFormat.Pptx);AddPictureFrame() の4つの位置引数は、ポイントで x, y, width, height です。
ストリームから画像を追加
ストリームから取得した画像データ(例: URL からダウンロードしたものやデータベースから読み取ったもの)がある場合は、AddImage() に直接渡してください:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = File.OpenRead("photo.jpg");
var img = prs.Images.AddImage(stream);
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 100, 80, 400, 250, img);
prs.Save("from-stream.pptx", SaveFormat.Pptx);PictureFrame の位置決めとサイズ設定
AddPictureFrame() が返す PictureFrame は、すべての Shape ジオメトリ プロパティを継承し、作成後に再配置できます。
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);
var pf = prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, 100, 100, img);
// Reposition and resize after creation
pf.X = 50;
pf.Y = 100;
pf.Width = 350;
pf.Height = 250;
prs.Save("positioned.pptx", SaveFormat.Pptx);画像をシェイプの塗りつぶしとして使用する
任意のシェイプ(PictureFrame に限らず)は、画像を背景塗りとして使用できます。FillType = FillType.Picture を設定し、画像を PictureFillFormat.Picture.Image に割り当てます:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var imageData = File.ReadAllBytes("background.png");
var img = prs.Images.AddImage(imageData);
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.RoundCornerRectangle, 50, 50, 400, 250);
shape.FillFormat.FillType = FillType.Picture;
shape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
shape.FillFormat.PictureFillFormat.Picture.Image = img;
prs.Save("picture-fill.pptx", SaveFormat.Pptx);PictureFillMode.Stretch は画像を拡大して形状全体を埋めます。
スライド全体に複数の画像を追加
prs.Imagesに追加された画像はすべてのスライドで共有されます。同じ画像オブジェクトを複数のスライドで使用しても、データを複製する必要はありません:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var logoData = File.ReadAllBytes("logo.png");
var logo = prs.Images.AddImage(logoData);
// Add the same image to the first slide
prs.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 600, 10, 100, 40, logo);
prs.Save("shared-image.pptx", SaveFormat.Pptx);