.NET'te Sunumlarda Görüntü Yönetimini Optimize Et
Giriş
Görseller sunumları daha çekici ve ilgi çekici hâle getirir. Microsoft PowerPoint’te bir dosyadan, internetteki bir kaynaktan ya da diğer konumlardan slaytlara resim ekleyebilirsiniz. Benzer şekilde, Aspose.Slides sunumlarınızdaki slaytlara çeşitli prosedürler aracılığıyla resim eklemenizi sağlar.
Tip
Aspose, insanlara görüntülerden hızlı bir şekilde sunum oluşturma imkanı sunan ücretsiz dönüştürücüler—JPEG to PowerPoint ve PNG to PowerPoint—sağlar.Info
Bir resmi çerçeve nesnesi olarak eklemek istiyorsanız—özellikle boyutunu değiştirmek, efekt eklemek vb. için standart biçimlendirme seçeneklerini kullanmayı planlıyorsanız—Picture Frame bölümüne bakın.Note
Görüntüler ve PowerPoint sunumlarıyla ilgili giriş/çıkış işlemlerini manipüle ederek bir resmi bir formattan başka bir formata dönüştürebilirsiniz. Bu sayfalara bakın: dönüştür image to JPG; dönüştür JPG to image; dönüştür JPG to PNG, dönüştür PNG to JPG; dönüştür PNG to SVG, dönüştür SVG to PNG.Aspose.Slides, JPEG, PNG, BMP, GIF ve diğer popüler formatlardaki görüntülerle ilgili işlemleri destekler.
Yerel Olarak Depolanan Görüntüleri Slaytlara Ekle
Bilgisayarınızdaki bir veya birkaç görüntüyü bir sunumdaki slayta ekleyebilirsiniz. C# örnek kodu bir resmi slayta nasıl ekleyeceğinizi gösterir:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Web’den Görüntüleri Slaytlara Ekle
Bir slayta eklemek istediğiniz görüntü bilgisayarınızda bulunmuyorsa, görüntüyü doğrudan web’den ekleyebilirsiniz.
Bu örnek kod, C# ile web’den bir resmi slayta nasıl ekleyeceğinizi gösterir:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
byte[] imageData;
using (WebClient webClient = new WebClient())
{
imageData = webClient.DownloadData(new Uri("[REPLACE WITH URL]"));
}
IPPImage image = pres.Images.AddImage(imageData);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Slide Master’lara Görüntü Ekle
Slide master, altındaki tüm slaytların (tema, düzen vb.) bilgilerini depolayan ve kontrol eden üst slayttır. Bu nedenle, bir slide master’a bir görüntü eklediğinizde, o görüntü o master altındaki tüm slaytlarda görünür.
Bu C# örnek kod, bir slide master’a nasıl görüntü ekleyeceğinizi gösterir:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IMasterSlide masterSlide = slide.LayoutSlide.MasterSlide;
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
masterSlide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
Görüntüleri Slayt Arkaplanı Olarak Ekle
Belirli bir slayt ya da birden fazla slayt için resmi arka plan olarak kullanmaya karar verebilirsiniz. Bu durumda, Setting Images as Backgrounds for Slides bölümüne bakmanız gerekir.
Sunumlara SVG Ekle
Sunuma herhangi bir görüntüyü, IShapeCollection arabirimine ait olan AddPictureFrame yöntemini kullanarak ekleyebilir ya da yerleştirebilirsiniz.
SVG görüntüsüne dayalı bir görüntü nesnesi oluşturmak için aşağıdaki adımları izleyebilirsiniz:
- SvgImage nesnesi oluşturup ImageShapeCollection’a ekleyin
- ISvgImage’den PPImage nesnesi oluşturun
- IPPImage arabirimini kullanarak PictureFrame nesnesi oluşturun
Bu örnek kod, yukarıdaki adımları uygulayarak bir SVG görüntüsünü sunuma nasıl ekleyeceğinizi gösterir:
// Belgeler dizinine yol
string dataDir = @"D:\Documents\";
// SVG kaynak dosya adı
string svgFileName = dataDir + "sample.svg";
// Çıktı sunum dosya adı
string outPptxPath = dataDir + "presentation.pptx";
// Yeni sunum oluştur
using (var p = new Presentation())
{
// SVG dosya içeriğini oku
string svgContent = File.ReadAllText(svgFileName);
// SvgImage nesnesi oluştur
ISvgImage svgImage = new SvgImage(svgContent);
// PPImage nesnesi oluştur
IPPImage ppImage = p.Images.AddImage(svgImage);
// Yeni bir PictureFrame oluştur
p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 200, 100, ppImage.Width, ppImage.Height, ppImage);
// Sunumu PPTX formatında kaydet
p.Save(outPptxPath, SaveFormat.Pptx);
}
SVG’yi Şekil Setine Dönüştür
Aspose.Slides’in SVG’yi bir dizi şekle dönüştürme işlemi, SVG görüntüleriyle çalışmak için kullanılan PowerPoint işlevselliğine benzer:

Bu işlevsellik, ilk argüman olarak bir ISvgImage nesnesi alan IShapeCollection arabiriminin AddGroupShape metodunun bir aşırı yüklemesi tarafından sağlanır.
Bu örnek kod, açıklanan yöntemi kullanarak bir SVG dosyasını şekil setine nasıl dönüştüreceğinizi gösterir:
// Belgeler dizinine yol
string dataDir = @"D:\Documents\";
// SVG kaynak dosya adı
string svgFileName = dataDir + "sample.svg";
// Çıktı sunum dosya adı
string outPptxPath = dataDir + "presentation.pptx";
// Yeni sunum oluştur
using (IPresentation presentation = new Presentation())
{
// SVG dosya içeriğini oku
string svgContent = File.ReadAllText(svgFileName);
// SvgImage nesnesi oluştur
ISvgImage svgImage = new SvgImage(svgContent);
// Slayt boyutunu al
SizeF slideSize = presentation.SlideSize.Size;
// SVG görüntüsünü slayt boyutuna ölçekleyerek şekil grubuna dönüştür
presentation.Slides[0].Shapes.AddGroupShape(svgImage, 0f, 0f, slideSize.Width, slideSize.Height);
// Sunumu PPTX formatında kaydet
presentation.Save(outPptxPath, SaveFormat.Pptx);
}
Görüntüleri EMF Olarak Slaytlara Ekle
Aspose.Slides for .NET, Excel sayfalarından EMF görüntüleri oluşturmanıza ve bu görüntüleri Aspose.Cells ile slaytlara EMF olarak eklemenize olanak tanır.
Bu örnek kod, belirtilen görevi nasıl yerine getireceğinizi gösterir:
using (Workbook book = new Workbook(dataDir + "chart.xlsx"))
{
Worksheet sheet = book.Worksheets[0];
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.HorizontalResolution = 200;
options.VerticalResolution = 200;
options.ImageFormat = System.Drawing.Imaging.ImageFormat.Emf;
//Çalışma kitabını akışa kaydet
SheetRender sr = new SheetRender(sheet, options);
using (Presentation pres = new Presentation())
{
pres.Slides.RemoveAt(0);
String EmfSheetName = "";
for (int j = 0; j < sr.PageCount; j++)
{
EmfSheetName = dataDir + "test" + sheet.Name + " Page" + (j + 1) + ".out.emf";
sr.ToImage(j, EmfSheetName);
var bytes = File.ReadAllBytes(EmfSheetName);
var emfImage = pres.Images.AddImage(bytes);
ISlide slide = pres.Slides.AddEmptySlide(pres.LayoutSlides.GetByType(SlideLayoutType.Blank));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, pres.SlideSize.Size.Width, pres.SlideSize.Size.Height, emfImage);
}
pres.Save(dataDir + "Saved.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
}
Görüntü Koleksiyonundaki Görüntüleri Değiştir
Aspose.Slides, bir sunumun görüntü koleksiyonunda depolanan (slayt şekilleri tarafından da kullanılan) görüntüleri değiştirmenize olanak tanır. Bu bölüm, koleksiyondaki görüntüleri güncellemenin birkaç yolunu gösterir. API, ham bayt verisi, bir IImage örneği veya koleksiyonda zaten var olan başka bir görüntü kullanarak bir görüntüyü değiştirmek için basit yöntemler sağlar.
- Presentation sınıfını kullanarak görüntü içeren sunum dosyasını yükleyin.
- Yeni bir görüntüyü dosyadan okuyarak bayt dizisine yükleyin.
- Hedef görüntüyü, bayt dizisini kullanarak yeni görüntü ile değiştirin.
- İkinci yaklaşımda, görüntüyü bir IImage nesnesine yükleyin ve hedef görüntüyü bu nesneyle değiştirin.
- Üçüncü yaklaşımda, hedef görüntüyü sunumun görüntü koleksiyonunda zaten mevcut olan bir görüntüyle değiştirin.
- Değiştirilmiş sunumu PPTX dosyası olarak yazın.
// Sunum dosyasını temsil eden Presentation sınıfını örnekle.
using Presentation presentation = new Presentation("sample.pptx");
// İlk yöntem.
byte[] imageData = File.ReadAllBytes("image0.jpeg");
IPPImage oldImage = presentation.Images[0];
oldImage.ReplaceImage(imageData);
// İkinci yöntem.
using IImage newImage = Images.FromFile("image1.png");
oldImage = presentation.Images[1];
oldImage.ReplaceImage(newImage);
// Üçüncü yöntem.
oldImage = presentation.Images[2];
oldImage.ReplaceImage(presentation.Images[3]);
// Sunumu bir dosyaya kaydet.
presentation.Save("output.pptx", SaveFormat.Pptx);
Info
Aspose ÜCRETSİZ Text to GIF dönüştürücüsünü kullanarak metinleri kolayca animasyon haline getirebilir, metinlerden GIF oluşturabilir vb. yapabilirsiniz.SSS
Ekleme işleminden sonra orijinal görüntü çözünürlüğü aynı kalır mı?
Evet. Kaynak pikseller korunur, ancak son görünüm slaytta picture nasıl ölçeklendirildiğine ve kaydedilirken uygulanan sıkıştırmaya bağlıdır.
Yüzlerce slaytta aynı logoyu aynı anda değiştirmek için en iyi yol nedir?
Logoyu master slayta veya bir düzen üzerine yerleştirin ve sunumun görüntü koleksiyonunda değiştirin—güncellemeler bu kaynağı kullanan tüm öğelere yayılır.
Eklenen bir SVG düzenlenebilir şekillere dönüştürülebilir mi?
Evet. Bir SVG’yi şekil grubuna dönüştürebilirsiniz; ardından bireysel parçalar standart şekil özellikleriyle düzenlenebilir hâle gelir.
Bir resmi aynı anda birden fazla slaytın arka planı olarak nasıl ayarlayabilirim?
Resmi arka plan olarak ata master slayta veya ilgili düzene—bu master/duzen’i kullanan tüm slaytlar arka planı devralır.
Birçok resim nedeniyle sunumun boyutu ‘balon gibi’ büyümesini nasıl önleyebilirim?
Tek bir görüntü kaynağını tekrar kullanın, kopyalar yerine, makul çözünürlükler seçin, kaydederken sıkıştırma uygulayın ve tekrar eden grafikleri gerektiğinde master üzerinde tutun.