yes the scripts grab a b/w picture with a transparent background.
the original doodles are in color but i reduced them before putting
them i the doodle library.
for example http://noemata.net/germinal/sdlfhgkj/199-3-1=isocherbset.jpg
http://noemata.net/germinal/sdlfhgkj/199-5=ldromaaps.jpg
http://noemata.net/germinal/ksfdaoiu/199-111=LSJ.jpg
with an unreduced color image i wasn't able to superimpose. one could
try though to reduce to 2-5 colors and from that generate color
doodles. i haven't come that far yet but it's possible.

bjørn


On Tue, Jan 26, 2010 at 12:39 PM, Pall Thayer <[email protected]> wrote:
> So the images are in color when you start?
>
> 2010/1/26 Bjørn Magnhildøen <[email protected]>:
>> you're right that's needed.
>>
>> for offline development i use the XAMPP distribution of apache server,
>> php, which includes GD and other support by default. online you have
>> to check or ask if your host has it installed
>> also, for the generation i load source images into an array.
>> my source images, doodles, are in the folders
>> http://noemata.net/time().mt_rand/larding-data/goy/
>> http://noemata.net/time().mt_rand/larding-data/goy2/
>> http://noemata.net/time().mt_rand/larding-data/goy3/
>> (they are b/w renderings of http://noemata.net/germinal/ )
>> - bjørn
>>
>> On Tue, Jan 26, 2010 at 12:07 PM, dave miller <[email protected]> 
>> wrote:
>>> to make this work do you ned to have GD library installed in php?
>>> dave
>>>
>>> 2010/1/26 Bjørn Magnhildøen <[email protected]>
>>>>
>>>> it's mostly done by iterations of superimposing b/w images with a
>>>> transparent background.
>>>> see core code below. i'm using php so the generation is also done
>>>> online, as 'larding' - line-stretching. some effects come from php's
>>>> inability to handle transparent images, ie. i have to use some
>>>> imagefill function ('paint bucket') to fill it with a transparent
>>>> color, which has the effect also of erasing lines (if you hit fill on
>>>> the wrong pixel, black instead of white) as seen clearly in the more
>>>> complex drawings, which has up to thousand iterations.
>>>> i'll put the code in the gallery somewhere.
>>>>
>>>> <?php
>>>> /*
>>>> $new_image = image resource identifier such as returned by
>>>> imagecreatetruecolor(). must be passed by reference
>>>> $image_source = image resource identifier returned by
>>>> imagecreatefromjpeg, imagecreatefromgif and imagecreatefrompng. must
>>>> be passed by reference
>>>> */
>>>> function setTransparency($new_image,$image_source)
>>>>    {
>>>>        global $im, $im2;
>>>>
>>>>            $transparencyIndex = imagecolortransparent($image_source);
>>>>            $transparencyColor = array('red' => 255, 'green' => 255,
>>>> 'blue' => 255);
>>>>
>>>>            if ($transparencyIndex >= 0) {
>>>>                $transparencyColor    =
>>>> imagecolorsforindex($image_source, $transparencyIndex);
>>>>            }
>>>>
>>>>            $transparencyIndex    = imagecolorallocate($new_image,
>>>> $transparencyColor['red'], $transparencyColor['green'],
>>>> $transparencyColor['blue']);
>>>>            imagefill($new_image, 0, 0, $transparencyIndex);
>>>>             imagecolortransparent($new_image, $transparencyIndex);
>>>>
>>>>    }
>>>>
>>>> function myimagefill($im, $x, $y, $color) {
>>>>        while ($i++ < 100 and $j < 10) {
>>>>                $x2 = mt_rand(0,$x);
>>>>                $y2 = mt_rand(0,$y);
>>>>                $rgb = imagecolorat($im, $x2, $y2);
>>>>                $r = ($rgb >> 16) & 0xFF;
>>>>                $g = ($rgb >> 8) & 0xFF;
>>>>                $b = $rgb & 0xFF;
>>>> //              if ($r == 0 and $g == 0 and $b == 2) {
>>>>                        imagefill($im, $x2, $y2, $color);
>>>> //                      $j++;
>>>> //              }
>>>>        }
>>>>        return $im;
>>>> }
>>>>
>>>> function myprocess() {
>>>>        global $im, $im2, $png, $i, $x, $y;
>>>>        $cf = trim($png[mt_rand(0,sizeof($png)-1)]);
>>>>        $im2 = imagecreatefrompng($cf);
>>>>        $white = imagecolorallocate($im2, 255, 255, 255);
>>>>        imagecolortransparent($im2, $white);
>>>>        $im2size = getimagesize($cf);
>>>>        $x2 = $im2size[0];
>>>>        $y2 = $im2size[1];
>>>>        if ($x2 < 150 or $y2 < 150) return;
>>>>        $x3 = mt_rand(0,$x+$x2);
>>>>        $y3 = mt_rand(0,$y+$y2);
>>>>        $x4 = $x3 - $x2;
>>>>        $y4 = $y3 - $y2;
>>>>        imagefill($im2, 0, 0, $white);
>>>>        $im2 = myimagefill($im2, $x2, $y2, $white);
>>>>        imagecolortransparent($im2, $white);
>>>>        setTransparency($im2, $im); //original
>>>>        imagecopymerge($im, $im2, $x4, $y4, 0, 0, $x2, $y2, 100);
>>>>        imagedestroy($im2);
>>>> }
>>>>
>>>> function makepng() {
>>>>        global $i, $im,$x,$y,$loops,$navn,$png;
>>>>        $im = imagecreatetruecolor($x,$y);
>>>>        $white = imagecolorallocate($im, 255, 255, 255);
>>>>        imagecolortransparent($im, $white);
>>>>   for ($i=0;$i<=$loops;$i++) {
>>>>        myprocess();
>>>>        imagecolortransparent($im, $white);
>>>>   }
>>>>   $navn = "larding-data/tmp.png";
>>>>   imagepng($im, $navn);
>>>>   imagedestroy($im);
>>>> }
>>>> ?>
>>>>
>>>> On Tue, Jan 26, 2010 at 11:16 AM, Pall Thayer <[email protected]> wrote:
>>>> > You should post the scripts somewhere.
>>>> >
>>>> > Pall
>>>> >
>>>> > 2010/1/26 Bjørn Magnhildøen <[email protected]>:
>>>> >> the material is originally hand scribbled, and then processed through
>>>> >> scripts.
>>>> >> i wanted to code a doodle machine in the beginning but couldn't get it
>>>> >> to do anything interesting (in my view), so i tried doing it via real
>>>> >> doodles instead and building up from those as patterns.
>>>> >> thanks, bjørn
>>>> >>
>>>> >> On Tue, Jan 26, 2010 at 10:45 AM, dave miller
>>>> >> <[email protected]> wrote:
>>>> >>> these are great - are the drawings generated by code? or hand
>>>> >>> scribbled?
>>>> >>> dave
>>>> >>>
>>>> >>> 2010/1/26 <[email protected]>
>>>> >>>>
>>>> >>>> http://noemata.net/time().mt_rand/
>>>> >>>> _______________________________________________
>>>> >>>> NetBehaviour mailing list
>>>> >>>> [email protected]
>>>> >>>> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>> >>>
>>>> >>>
>>>> >>> _______________________________________________
>>>> >>> NetBehaviour mailing list
>>>> >>> [email protected]
>>>> >>> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>> >>>
>>>> >> _______________________________________________
>>>> >> NetBehaviour mailing list
>>>> >> [email protected]
>>>> >> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > *****************************
>>>> > Pall Thayer
>>>> > artist
>>>> > http://www.this.is/pallit
>>>> > *****************************
>>>> > _______________________________________________
>>>> > NetBehaviour mailing list
>>>> > [email protected]
>>>> > http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>> >
>>>> _______________________________________________
>>>> NetBehaviour mailing list
>>>> [email protected]
>>>> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>
>>>
>>>
>>> _______________________________________________
>>> NetBehaviour mailing list
>>> [email protected]
>>> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>>
>> _______________________________________________
>> NetBehaviour mailing list
>> [email protected]
>> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>>
>
>
>
> --
> *****************************
> Pall Thayer
> artist
> http://www.this.is/pallit
> *****************************
> _______________________________________________
> NetBehaviour mailing list
> [email protected]
> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>
_______________________________________________
NetBehaviour mailing list
[email protected]
http://www.netbehaviour.org/mailman/listinfo/netbehaviour

Reply via email to