# Blender Python API ile Image verisi ve ImageTexture dokuları

Kaynak: https://3dsinifi.com/haber/blender-python-api-ile-image-verisi-ve-imagetexture-dokulari · Kategori: Eğitimler · Yayın: 12 Kasım 2026

> Blender’ın Python API belgeleri, Image veri bloğundaki piksel tamponunu düzenleme ve ImageTexture ayarlarını kullanma yöntemlerini açıklıyor. Bu rehber, temel işlemleri mimari görselleştirme iş akışlarına uyarlıyor.

## Kısaca
- Image veri bloğu, dosyadan yüklenen, paketlenen veya oluşturulan görsel verisini temsil eder.
- Piksel tamponunda düzenleme yaptıktan sonra görüntüyü yenilemek için update() kullanılabilir.
- Kaydedilmemiş tampon değişiklikleri, Image veri bloğu kopyalandığında kopyaya aktarılmayabilir.
- ImageTexture seçenekleri arasında tekrar, kırpma, alfa ve görüntü sınırlarının dışındaki davranışı belirleyen ayarlar bulunur.

## Bu rehberde ne öğreneceksiniz?

Blender Python API kullanarak bir Image veri bloğu oluşturmayı, görsel tamponunu ölçeklemeyi ve piksel değerlerini değiştirmeyi öğreneceksiniz. Ayrıca yapılan düzenlemelerin görüntüye yansıması için `update()` çağrısının rolünü ve bir Image veri bloğunu kopyalarken tamponla ilgili dikkat edilmesi gereken noktaları inceleyeceğiz. Son bölümde ImageTexture seçeneklerinin doku tekrarı, alfa ve görsel sınırlarıyla ilişkisini ele alacağız.

Bu anlatım, görsel verileri betiklerle hazırlamak veya doku davranışını daha kontrollü incelemek isteyen mimari görselleştirme ekipleri ve Blender kullanıcıları içindir. Örnekler API belgelerinde açıklanan işlemlerle sınırlıdır; sahneye malzeme atama ya da düğüm ağı kurma adımları bu kapsamda yer almıyor.

## Gereksinimler

- Blender içinde Python API’sine erişim gerekir. Kaynaklar Blender’ın güncel API belgeleridir; belirtilen işlemler için gerekli en düşük Blender sürümü bu sayfalarda açıklanmıyor.
- Kod örnekleri Blender Python ortamında `bpy` modülünü kullanır. Harici bir hesap gereksinimi kaynaklarda belirtilmiyor.
- API belgeleri bu işlemler için donanım gereksinimi, ücret veya lisans maliyeti bilgisi vermiyor. Bu konularda belirli bir gereksinim varsayılmamalı; kullanılacak sürüm ve çalışma ortamı ayrıca kontrol edilmelidir.

## Adım adım Image veri bloğuyla çalışın

### 1. Görsel veri bloğu oluşturun

`bpy.data.images.new()` ile yeni bir Image veri bloğu yaratabilirsiniz. Aşağıdaki örnekte kaynak belgedeki başlangıç boyutu kullanılıyor. `size` özelliği, görüntü tamponunun genişlik ve yüksekliğini piksel cinsinden okumaya yarar.

```python
import bpy

image_src = bpy.data.images.new("Mimari_Kontrol", 1024, 102)
print(image_src.size)
```

Image veri bloğu, görselin kendisindeki bütün verinin tutulduğu yer olarak düşünülmemelidir. Belgeler, piksel tamponu ve boyut gibi bilgilerin bir görüntü tamponunda saklandığını; Image veri bloğunun ise görsel dosyasına ya da oluşturulmuş görsele referans verdiğini belirtiyor. Bu ayrım, özellikle tamponda değişiklik yapıp ardından veri bloğunu kopyalama aşamasında önem kazanıyor.

### 2. Tamponu ölçekleyin ve değişikliği görüntüye yansıtın

`scale()` görüntü tamponunun boyutunu değiştirir. `pixels` özelliği kayan noktalı değerlerden oluşan piksel tamponuna erişim sağlar. Aşağıdaki örnek, görüntüyü 1024 × 720 boyutuna ölçekler, tamponun ilk dört değerini değiştirir ve ardından görüntüyü günceller.

```python
image_src.scale(1024, 720)
image_src.pixels[0:4] = (0.5, 0.5, 0.5, 0.5)
image_src.update()

print(image_src.size)
print(image_src.pixels[0:4])
```

Bu kod yalnızca tamponun ilk dört değerine atama yapar; görüntünün tamamını doldurduğu anlamına gelmez. `update()` çağrısı, kayan noktalı tamponda yapılan düzenlemenin görüntü gösteriminde güncellenmesini sağlar. Sonuç beklenenden farklıysa önce kullanılan değişkenin doğru Image veri bloğunu işaret ettiğini ve güncelleme çağrısının çalıştığını kontrol edin.

### 3. Kopyalama davranışını doğrulayın

Image veri bloğunu kopyalamak, tampondaki değişikliklerin de otomatik olarak kopyalandığı anlamına gelmeyebilir. Belgelerde tamponların farklı Image veri blokları arasında paylaşılmadığı ve görsel kopyalandığında çoğaltılmadığı uyarısı bulunuyor. Bu nedenle diske kaydedilmemiş tampon düzenlemeleri kopyada yer almayabilir.

```python
image_dest = image_src.copy()
image_dest.update()

print(image_dest.size)
print(image_dest.pixels[0:4])
```

Kopya oluşturulduktan sonra boyut ve tampon değerlerini ayrıca inceleyin. Kopyada kaynak görüntüde yaptığınız son düzenlemelerin bulunacağını varsaymayın. Tampondaki değişikliklerin kopyaya yansıması gerekiyorsa, önce görseli diske kaydetme gereksinimini değerlendirin ve kopyayı kontrol edin.

### 4. Görseli kaydedin veya proje dosyasına paketleyin

Image API’si görseli kaydetmek için `save()` ve sahnenin render ayarlarını kullanarak belirli bir yola kaydetmek için `save_render()` işlevlerini tanımlar. `pack()` ise görseli `.blend` dosyasına gömülü veri olarak eklemek için kullanılabilir.

```python
image_src.pack()
```

Paketleme, kaydetme ve yeniden yükleme farklı işlemlerdir. API’de `unpack()` paketlenmiş görseli diske çıkarmaya, `reload()` ise görseli kaynak yolundan yeniden yüklemeye yarar. Hangi yöntemin uygun olduğu, görselin dosya yolunu ve proje içindeki veriyi nasıl yönetmek istediğinize bağlıdır. Teslimden önce görselin beklenen yerde bulunduğunu ve proje dosyasındaki durumunu doğrulayın.

## ImageTexture ayarları nasıl seçilir?

ImageTexture seçenekleri, görüntünün doku olarak nasıl ele alınacağını belirler. `extension` özelliği, görselin kendi sınırlarının dışındaki alanın davranışını seçer. `REPEAT` görüntüyü yatay ve dikey yönde tekrarlar; `EXTEND` kenar piksellerini uzatır; `CLIP` görüntü boyutunun dışını şeffaf bırakır. Belgelerde `CLIP_CUBE` ve `CHECKER` da seçenekler arasında yer alır.

`repeat_x` ve `repeat_y` yatay ve dikey tekrar çarpanlarını ayrı ayrı belirler. Alfa kullanımı için `use_alpha`, alfa değerlerini ters çevirmek için `invert_alpha` bulunur. `use_interpolation` enterpolasyonu, `filter_size` ise enterpolasyonda kullanılan filtre boyutunu etkiler. Bu ayarları incelerken kaynak görselin alfa kanalını ve dokunun kullanım biçimini göz önünde bulundurun.

Image API’si alfa gösterimi için `STRAIGHT`, `PREMUL`, `CHANNEL_PACKED` ve `NONE` seçeneklerini listeler. Belgelerde `CHANNEL_PACKED`, farklı görüntülerin RGB ve alfa kanallarına paketlendiği ve kanalların birbirini etkilememesi gereken kullanım olarak açıklanıyor. Kaynak dosyanın kanal düzeni bilinmiyorsa alfa ayarlarını değiştirmeden önce görselin nasıl hazırlandığını kontrol edin.

## Sık yapılan hatalar

- **Kopyanın tamponu da çoğalttığını varsaymak:** Kaydedilmemiş değişiklikler kopyada bulunmayabilir. Kopyanın boyutunu ve tampon değerlerini inceleyin.
- **Düzenlemeden sonra `update()` çağrısını atlamak:** Tamponda yaptığınız değişiklikten sonra görüntüyü güncelleyin.
- **Doku sınırlarının davranışını kontrol etmemek:** `REPEAT`, `EXTEND` ve `CLIP` farklı sonuçlar verir. Görselin kenarlarında hangi davranışın gerektiğini belirleyin.
- **Alfa ayarlarını kaynak görselden bağımsız değiştirmek:** Alfa kanalının kullanılıp kullanılmadığını ve hangi alfa modunun uygun olduğunu doğrulayın.
- **Kaydetme ile paketlemeyi aynı işlem sanmak:** `save()`, `pack()`, `unpack()` ve `reload()` farklı amaçlara hizmet eder. Proje dosyasındaki ve diskteki görsel durumunu ayrı ayrı kontrol edin.

## Sonraki adımlar

İşlemleri önce küçük bir test dosyasında uygulayın. Görüntüyü oluşturduktan sonra boyutunu yazdırın; ölçekleme ve piksel değişikliğinden sonra tamponu güncelleyip değerleri yeniden inceleyin. Kopyalama davranışını test ederken kaynak ve kopya değerlerini karşılaştırın. Ardından ImageTexture için sınır davranışını ve tekrar ayarlarını kontrollü biçimde deneyin. Mimari görselleştirme sahnesine geçmeden önce kaynak görselin dosya yolunu, alfa kullanımını ve proje içinde paketlenip paketlenmeyeceğini doğrulayın.

## Kaynak ve lisans

Bu rehber, Blender’ın resmi Python API belgelerindeki `bpy.types.Image` ve `bpy.types.ImageTexture` sayfalarına dayanır. Her iki kaynak da CC BY-SA 4.0 lisanslıdır; içerik Türkçeye uyarlanmıştır.

## Pro ipucu
Piksel tamponunu değiştirdikten sonra update() çağırın; Image veri bloğunu kopyalıyorsanız kaydedilmemiş tampon değişikliklerinin kopyaya geçtiğini varsaymayın.

## 3dsınıfı yorumu
Image ve ImageTexture özellikleri, görsel verileri betikle düzenleyen ya da tekrarlayan doku ayarlarını standardize etmek isteyen ofisler için işe yarar bir kontrol alanı sunuyor. Özellikle kopyalama davranışını ve görselin proje içinde paketlenip paketlenmediğini teslim öncesinde doğrulamak, dosya devrinde belirsizliği azaltabilir.

Türkiye’deki ekipler ve öğrenciler için bu yaklaşımın pratik değeri mevcut Python bilgisine ve iş akışındaki tekrar miktarına bağlı. API sayfaları donanım gereksinimi, maliyet veya lisans koşullarını açıklamıyor; bu nedenle bu konularda genel bir varsayım yerine kullanılan Blender sürümünü ve çalışma ortamını ayrıca kontrol etmek gerekir.

## Kaynaklar
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/api/current/bpy.types.Image.html) (özet)
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/api/current/bpy.types.ImageTexture.html) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
