Çok büyük bir görüntü (> 50.000² piksel) cairo ile render etmeliyim. Hafızamız bitmeden bunu yapmak için görüntünün (< 1.000² piksel) parçalarını birbiri ardına işledim ve daha sonra bir araya getiriyorum.cairo ile büyük resimler
- oluştur 1000x1000 Yüzey
- akım kısmının pozisyonuna Çevir
- Kurası resmi (pycairo kullanarak çizim talimatlarını çağırarak)
- Render/Kaydet görüntü dosyasına (cairo_surface_write_to_png) aşağıdaki ile
- tekrarlayın bölüm
Cairos kırpma algoritmaları kendiminkinden daha hızlı olduğu için, üçüncü adım tüm görüntüyü çizer. sadece bir kısmı görülebilir. CPU'nun çoğu 3. Adımda (python ile) kullanılır. Belleğin çoğu Adım 4'te (cairo tarafından) kullanılır.
İşleri hızlandırmak için bir yol var mı? Böyle bir şey mi?
- oluştur 1000x1000 Yüzey /Kaydet görüntü
- tekrarlayın 3 sonraki bölümü ile dosyaya Render akım parçası
- pozisyonuna şeyi Taşı
- Kurası görüntü
veya
- 50000x50000 Yüzey oluşturma
- Kurası görüntü
- /Kaydet dosyaya görüntünün yalnızca geçerli kısmını Render
- sonraki bölümünde tüm
Başka bir dil bir seçenek değildir ve sorunu çözmez, ancak write_to_png_stream iyi bir fikirdir. Teşekkürler – defnull
Rica ederim. Umarım işe yarar. –