The black and white has a nice aesthetic to it that works quite well with these images. Regardless of whether it was a forced decision or an aesthetic one.
2010/1/26 Bjørn Magnhildøen <[email protected]>: > 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 > -- ***************************** Pall Thayer artist http://www.this.is/pallit ***************************** _______________________________________________ NetBehaviour mailing list [email protected] http://www.netbehaviour.org/mailman/listinfo/netbehaviour
