Python Kullanarak Sunumlarda 3B Efektler Oluşturma
Genel Bakış
Aspose.Slides for Python via .NET, şekil ve metinler için PowerPoint tarzı 3B biçimlendirme oluşturabilir, düzenleyebilir, koruyabilir ve renderleyebilir. Bu makale, döndürme, ekstrüzyon, açılma kenarları, aydınlatma, malzeme, degrade veya resim dolgu ve 3B metin gibi 3B efektleri kapsar.
3B Biçimlendirme Kavramları
Bir şekle 3B biçimlendirme uygulamak için Shape.three_d_format özelliğini kullanın. Bu özellik, şekil için 3B sahneyi kontrol eden ThreeDFormat’ı açığa çıkar.
Metin için ise TextFrameFormat.three_d_format özelliğini kullanın. Bu, şekil gövdesi yerine metin çerçevesine 3B biçimlendirme uygular.
En önemli özellikler şunlardır:
| Özellik | Ne kontrol eder | Ne zaman kullanılmalı |
|---|---|---|
| camera | Görüş noktası, ön ayarlı kamera türü, döndürme, yakınlaştırma ve perspektif. | Nesneyi 3B uzayda döndürmek veya PowerPoint 3B döndürme ön ayarına uymak için. |
| light_rig | Işık ön ayarı, yönü ve ışık dönüşü. | 3B yüzeydeki vurguların ve gölgelerin nasıl göründüğünü değiştirmek için. |
| material | Düz, mat, plastik veya metal gibi yüzey malzemesi. | Aynı geometrinin daha düz, daha yumuşak, parlak veya metalik görünmesini sağlamak için. |
| extrusion_height | Şeklin ön yüzünden geriye ne kadar uzandığını belirler. | Düz bir şekli görünür şekilde kalın bir 3B nesne haline getirmek için. |
| extrusion_color | Ekstrüde edilmiş yan yüzlerin rengi. | Derinliği görünür kılar veya yan renkleri ön dolgu ile eşleştirir. |
| depth | PowerPoint 3B biçimlendirmesi tarafından kullanılan ek 3B derinlik. | Şekiller veya metinler için derinliği, özellikle açılma kenarı ve malzeme ayarlarıyla birlikte hassas ayarlamak için. |
| bevel_top ve bevel_bottom | Ön ve arka yüzlerde yükseltilmiş veya yuvarlatılmış kenarlar. | Keskin düz bir yüz yerine yumuşak veya kalıplı bir kenar eklemek için. |
| contour_color ve contour_width | 3B nesnenin çevresindeki kontur. | Renderlenmiş çıktıda nesne sınırını vurgulamak için. |
3B Şekil Oluşturma
Bir şekil genellikle ikna edici bir 3B görünüm kazanması için dört tür ayara ihtiyaç duyar:
- Kamera ayarları, çünkü varsayılan ön görünüm ekstrüzyonu gizleyebilir.
- Işık ayarları, çünkü aydınlatma yüzeylerin ve yanların okunabilir olmasını sağlar.
- Malzeme ayarları, çünkü yüzey ışığın nasıl renderlendiğini etkiler.
- Ekstrüzyon veya derinlik ayarları, çünkü düz bir şeklin kalınlığa ihtiyacı vardır.
Aşağıdaki örnek bir dikdörtgen oluşturur, ön yüzüne metin ekler, 3B biçimlendirme uygular, sunumu PPTX olarak kaydeder ve slaytı PNG görüntüsü olarak renderlar.
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 200, 200)
shape.text_frame.text = "3D"
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 64
shape.fill_format.fill_type = slides.FillType.SOLID
shape.fill_format.solid_fill_color.color = drawing.Color.cornflower_blue
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(20, 30, 40)
shape.three_d_format.light_rig.light_type = slides.LightRigPresetType.FLAT
shape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
shape.three_d_format.material = slides.MaterialPresetType.FLAT
shape.three_d_format.extrusion_height = 100
shape.three_d_format.extrusion_color.color = drawing.Color.blue
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("shape_3d.png")
presentation.save("shape_3d.pptx", slides.export.SaveFormat.PPTX)
Renderlanan slayt görüntüsü, dikdörtgeni kalın bir 3B blok olarak gösterir:

Kamerayı Kullanarak Şekli Döndürme
PowerPoint’te 3B döndürme, 3‑D Rotation panelinden yapılandırılır. X, Y ve Z döndürme değerleri, kamera API’si üzerinden ayarladığınız döndürmeye karşılık gelir.

Aspose.Slides’te kameranın türünü ve döndürmesini ThreeDFormat.camera aracılığıyla ayarlayın:
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(20, 30, 40)
Kamerayı, izleyicinin nesneyi nasıl gördüğünü değiştirmek istediğinizde kullanın. Bu, slayttaki 2D şekil geometrisini değiştirmez; PowerPoint ve Aspose.Slides’in renderleme sırasında kullandığı 3B bakış noktasını değiştirir.
Ekstrüzyon ve Derinlik Ekleme
Ekstrüzyon, bir şekli ön yüzünden geriye uzatarak kalın gösterir. PowerPoint’te derinlik kontrolü bu görünür kalınlığı ayarlar, renk kontrolü ise yan yüzlerin rengini belirler.

Kalınlık için ThreeDFormat.extrusion_height, yan renk için ThreeDFormat.extrusion_color ayarlayın:
shape.three_d_format.camera.set_rotation(20, 30, 40)
shape.three_d_format.extrusion_height = 100
shape.three_d_format.extrusion_color.color = drawing.Color.purple
PowerPoint’in derinlik değerini doğrudan kullanmak veya derinliği açılma, malzeme ve metin efektleriyle birleştirmek istediğinizde ThreeDFormat.depth kullanın. Çoğu şekil senaryosunda, görünür ekstrüzyonu doğrudan ifade ettiği için ThreeDFormat.extrusion_height daha açıklayıcı bir ayardır.
3B Efektlerle Degrade veya Resim Dolguları Kullanma
3B biçimlendirme, şekil dolgusundan bağımsızdır. Ön yüze katı renk, degrade, desen veya resim dolgu uygulayabilir ve aynı kamera, ışık, malzeme ve ekstrüzyon ayarlarını koruyabilirsiniz.
Bu örnek, şekle bir degrade dolgu ve yanlara daha koyu bir ekstrüzyon rengi uygular:
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 250, 250)
shape.text_frame.text = "3D Gradient"
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 64
shape.fill_format.fill_type = slides.FillType.GRADIENT
shape.fill_format.gradient_format.gradient_stops.add(0, drawing.Color.blue)
shape.fill_format.gradient_format.gradient_stops.add(100, drawing.Color.orange)
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(10, 20, 30)
shape.three_d_format.light_rig.light_type = slides.LightRigPresetType.FLAT
shape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
shape.three_d_format.material = slides.MaterialPresetType.FLAT
shape.three_d_format.extrusion_height = 150
shape.three_d_format.extrusion_color.color = drawing.Color.dark_orange
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("gradient_3d.png")
Renderlanan çıktı, ön yüze degrade uygular ve ekstrüzyonu ayrı olarak renderlar:

Resim dolgu kullanmak isterseniz, resmi sunuma ekleyin ve şekil dolgusuna atayın:
with open("image.jpg", "rb") as image_file:
image_data = image_file.read()
image = presentation.images.add_image(image_data)
shape.fill_format.fill_type = slides.FillType.PICTURE
shape.fill_format.picture_fill_format.picture.image = image
shape.fill_format.picture_fill_format.picture_fill_mode = slides.PictureFillMode.STRETCH
shape.three_d_format.camera.set_rotation(10, 20, 30)
shape.three_d_format.extrusion_height = 150
shape.three_d_format.extrusion_color.color = drawing.Color.dark_orange
Resim ön yüzde renderlanırken, ekstrüzyon 3B yan yüz olarak renderlanır:

Metne 3B Biçimlendirme Uygulama
Şekil 3B biçimlendirmesi şekil gövdesini etkiler. Metin 3B biçimlendirmesi ise metin çerçevesini etkiler. Bu, harflerin kendisinin ekstrüzyon, malzeme, aydınlatma ve kamera ayarlarına ihtiyaç duyduğu WordArt benzeri efektler için kullanışlıdır.
Aşağıdaki örnek, desen dolgu ile metin oluşturur, bir WordArt dönüşümü uygular ve TextFrameFormat üzerinde 3B ayarları yapılandırır:
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 250, 250)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.fill_type = slides.FillType.NO_FILL
shape.text_frame.text = "3D Text"
portion = shape.text_frame.paragraphs[0].portions[0]
portion.portion_format.fill_format.fill_type = slides.FillType.PATTERN
portion.portion_format.fill_format.pattern_format.fore_color.color = drawing.Color.dark_orange
portion.portion_format.fill_format.pattern_format.back_color.color = drawing.Color.white
portion.portion_format.fill_format.pattern_format.pattern_style = slides.PatternStyle.LARGE_GRID
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 128
text_frame_format = shape.text_frame.text_frame_format
text_frame_format.transform = slides.TextShapeType.ARCH_UP
text_frame_format.three_d_format.extrusion_height = 3.5
text_frame_format.three_d_format.depth = 3
text_frame_format.three_d_format.material = slides.MaterialPresetType.PLASTIC
text_frame_format.three_d_format.light_rig.direction = slides.LightingDirection.TOP
text_frame_format.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
text_frame_format.three_d_format.light_rig.set_rotation(0, 0, 40)
text_frame_format.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("text_3d.png")
presentation.save("text_3d.pptx", slides.export.SaveFormat.PPTX)
Metin, kavisli, ekstrüde edilmiş 3B harfler olarak renderlanır:

Dışa Aktarma ve Render Davranışı
Aspose.Slides, PPTX gibi PowerPoint formatlarına kaydederken 3B biçimlendirmeyi korur. Sabit‑sayfa formatlarına renderlarken veya dışa aktarırken 3B sahne rasterleştirilir ve çıktı 2B bir sonuç olarak çizilir. Bu durum, slaytları PNG, PDF, HTML olarak renderladığınızda veya video dönüştürme için kareler oluşturduğunuzda geçerlidir.
Aşağıdaki noktaları akılda tutun:
- Dışa aktarılan görüntüler ve PDF’ler etkileşimli değildir. Nesne dışa aktarımdan sonra izleyici tarafından döndürülemez.
- Nihai görünüm, kamera, ışık rigi, malzeme, ekstrüzyon, dolgu ve slayt ölçeklemesinin kombinasyonuna bağlıdır.
- Kalıtılmış veya tema‑tabanlı biçimlendirme değerlerini incelemeniz gerekiyorsa, etkin şekil özelliklerini okuyun.
- Bazı çıktı formatları düzenlenebilir PowerPoint 3B biçimlendirmesini saklayamaz. Bu formatlarda görsel sonuç renderlanır, düzenlenebilir 3B ayarlar korunmaz.
SSS
Aspose.Slides etkileşimli 3B sunumlar oluşturabilir mi?
Aspose.Slides, şekil ve metinler için PowerPoint 3B efektlerini oluşturur ve renderlar. Dışa aktarılan görüntüler, PDF’ler veya HTML sayfaları, izleyicinin döndürebileceği etkileşimli 3B sahneler haline getirmez. PPTX içinde, 3B biçimlendirme PowerPoint’te düzenlenebilir durumda kalır.
3B model ile 3B efekt arasındaki fark nedir?
3B model, sunuma eklenen ayrı bir 3B nesnedir. 3B efekt ise, bir PowerPoint şekli veya metnine uygulanan döndürme, ekstrüzyon, açılma, aydınlatma ve malzeme gibi biçimlendirmedir. Bu makale, 3B efektleri ele alır.
Görünür bir 3B şekil için hangi ayarlar gereklidir?
En az bir kamera döndürmesi ve ya ekstrüzyon ya da derinlik ayarı gerekir. Pratikte, yüzeylerin belirgin vurgular ve gölgeler alması için bir ışık rigi ve malzeme de ayarlanmalıdır.
Hem şekillere hem de metne 3B efektler uygulayabilir miyim?
Evet. Şekil gövdesi için Shape.three_d_format, metin için ise TextFrameFormat.three_d_format kullanın.
3B efektler görüntülere, PDF, HTML veya video karelerine dışa aktarılırken görünecek mi?
Evet. Aspose.Slides, slayt görüntüleri, PDF çıktısı, HTML çıktısı ve video dönüşümü için kullanılan kareler üretilirken 3B efektleri renderlar. Dışa aktarılan çıktı renderlanmış görünümü içerir, düzenlenebilir bir 3B nesne içermez.
Kalıtım ve tema ayarları uygulandıktan sonra nihai 3B değerlerini okuyabilir miyim?
Evet. Nihai kamera, ışık rigi, açılma ve ilgili 3B değerlerini okumak için Şekil Etkin Özellikleri API’lerini kullanın.