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
