Pixel Çizim Algoritması

4 Cevap php

I (x, y) sistemi tabanlı bir ızgara, bir seferde bir tane piksel çekecek bir örnek algoritma gerekir ve aynı zamanda bazı formunda sağlanır ikili verilere dayalı bir RBG değerine göre onları renk. Ben php veya C gibi bir dil gibi bir php yazılı bir şey için arıyorum, ama php kodlama kulüpler gibi olduğunu, kütüphaneye ya da grafik kartı API her türlü kullanmaz.

İşte ben php yazdığı şeydir, yani rastgele renk değerlerini kullanır ama bir html tuval işlemek için 15 saniye sürer:

<?php
$r_max = 240;
$c_max = 320;
$row = -1;//-1 to offset while
while ($row<$r_max){
    ++$row;
    for($column=0; $column<=$c_max; ++$column)
    {
    echo 'ctx.fillStyle = "rgb(', rand()%255, ',', rand()%255, ',', rand()%255, ')";';
    echo 'ctx.fillRect(', $column, ',', $row, ',1,1);';
    }
}
?>

4 Cevap

Bu JavaScript <canvas> etiketi üzerinde çizim komutları çıkış için çalışıyoruz görünüyor. Piksel çizmek için daha hızlı bir yol moveTo ve lineTo kullanmak olabilir. BTW, neden siz de döngü için dış döngü bir değil mi?

Farketmez

for($row=0; $row<=$r_max; ++$row) {
    for($column=0; $column<=$c_max; ++$column) {
        # draw pixel
    }
}

daha doğal görünüyor?

Gerçekten emin değilim ben oldukça sorunuzu anlıyorum ama .. PHP resim tahsis ve SetPixel aramaları, hat vb çizim .. onay here dahil GD fonksiyonları vardır

oh ve evet imagemagick da daha egzotik kullanımlar için

Sorun, her bir piksel için kod üreten konum olmasıdır. Bunun yerine, neden kod favori görüntü formatına piksel bilgi yazmak zorunda değil, o sayfanın o görüntüler? Ben bunu yapmak için çalışıyoruz ne uyması verirseniz emin değilim ... (benim için) en makul algoritmik çözüm.

Benim kullanım için efficiant değil çünkü ben, bir görüntü biçimi kullanamazsınız. Ben sadece bu yüzden ben daha hızlı başına 15 saniye render hızında yapıyorum ne yapmak hhow bir fikir edinebilirsiniz bir görüntü verilerine dayalı görüntülenebilir olabilecek bazı örnek kod arıyorum. Yukarıda dahil iç içe döngüler yavaş yoldur.