Cách Thêm Hình Ảnh vào Các Slide PowerPoint trong .NET

Cách Thêm Hình Ảnh vào Các Slide PowerPoint trong .NET

Hình ảnh trong Aspose.Slides FOSS được nhúng dưới dạng khung hình, các hình dạng chứa hình ảnh và có thể được định vị, thay đổi kích thước và tạo kiểu như bất kỳ hình dạng nào khác. Dữ liệu hình ảnh được lưu trữ một lần trong bộ sưu tập prs.Images và được tham chiếu bởi khung.


Điều kiện tiên quyết

dotnet add package Aspose.Slides.Foss

Thêm hình ảnh từ tệp

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Load image into the presentation's image collection
byte[] imageData = File.ReadAllBytes("photo.jpg");
var img = prs.Images.AddImage(imageData);

// Add a picture frame at (x=50, y=50, width=400, height=300) in points
var frame = slide.Shapes.AddPictureFrame(
    ShapeType.Rectangle,
    50, 50, 400, 300,
    img
);

prs.Save("with-image.pptx", SaveFormat.Pptx);

Chữ ký AddPictureFrame:

AddPictureFrame(shapeType, x, y, width, height, image) -> PictureFrame

Tất cả các kích thước đều tính bằng points (1 point = 1/72 inch). Đối với một slide tiêu chuẩn kích thước 10 x 7,5 inch, không gian tọa độ là 720 x 540 points.


Thêm một hình ảnh từ luồng

Nếu bạn đã có hình ảnh dưới dạng luồng (ví dụ: tải xuống từ URL hoặc đọc từ cơ sở dữ liệu):

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
using var stream = File.OpenRead("logo.png");
var img = prs.Images.AddImage(stream);

prs.Slides[0].Shapes.AddPictureFrame(
    ShapeType.Rectangle,
    200, 100, 300, 200,
    img
);
prs.Save("logo-slide.pptx", SaveFormat.Pptx);

Kiểm soát chế độ lấp đầy

PictureFormat trên một PictureFrame kiểm soát cách hình ảnh lấp đầy giới hạn khung:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
byte[] texData = File.ReadAllBytes("texture.png");
var img = prs.Images.AddImage(texData);
var frame = prs.Slides[0].Shapes.AddPictureFrame(
    ShapeType.Rectangle, 50, 50, 600, 350, img
);

// STRETCH: scale image to fill the frame exactly (default)
frame.PictureFormat.PictureFillMode = PictureFillMode.Stretch;

// TILE: repeat the image in a grid pattern
// frame.PictureFormat.PictureFillMode = PictureFillMode.Tile;

prs.Save("filled.pptx", SaveFormat.Pptx);
PictureFillModeHành vi
StretchPhóng to hình ảnh để lấp đầy khung, bỏ qua tỷ lệ khung hình
TileLặp lại hình ảnh dưới dạng mẫu lưới

Thêm Nhiều Hình Ảnh Vào Các Slide Khác Nhau

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

string[] imageFiles = { "slide1.jpg", "slide2.jpg", "slide3.jpg" };

using var prs = new Presentation();
var layout = prs.Slides[0].LayoutSlide;

// Ensure enough slides exist
while (prs.Slides.Count < imageFiles.Length)
    prs.Slides.AddEmptySlide(layout);

for (int i = 0; i < imageFiles.Length; i++)
{
    if (!File.Exists(imageFiles[i])) continue;
    var img = prs.Images.AddImage(File.ReadAllBytes(imageFiles[i]));
    prs.Slides[i].Shapes.AddPictureFrame(
        ShapeType.Rectangle, 0, 0, 720, 540, img
    );
}

prs.Save("multi-image.pptx", SaveFormat.Pptx);

Đếm hình ảnh trong một bản trình bày hiện có

using Aspose.Slides.Foss;

using var prs = new Presentation("with-image.pptx");
Console.WriteLine($"Presentation contains {prs.Images.Count} image(s)");

Bộ sưu tập prs.Images được chia sẻ trên tất cả các slide: cùng một byte hình ảnh được lưu một lần ngay cả khi khung ảnh xuất hiện trên nhiều slide.


Xem thêm

 Tiếng Việt