Deprecated: Assigning the return value of new by reference is deprecated in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/parserutils.php on line 219 Deprecated: Assigning the return value of new by reference is deprecated in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/parserutils.php on line 222 Deprecated: Assigning the return value of new by reference is deprecated in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/parserutils.php on line 359 Deprecated: Function split() is deprecated in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/auth.php on line 134 Warning: Cannot modify header information - headers already sent by (output started at /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/parserutils.php:219) in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/auth.php on line 224 Deprecated: Function split() is deprecated in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/common.php on line 798 Warning: Cannot modify header information - headers already sent by (output started at /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/parserutils.php:219) in /shared/usr/retortplusorg/DOMAIN/HTML/archief/inc/actions.php on line 105
MagickWand is een PHP API die gebruik maakt van de library van ImageMagick. Wij gaan het bebruiken voor het beeldbewerkingsgedeelte van de ZapMachine.
Voor de test gebruiken we de images bami.jpg en bambi.jpg. Ze staan in dezelfde folder als het testscript dus kunnen samen in een MagickWand object geladen met
$mw = NewMagickWand(); MagickReadImages( $mw, glob( ‘./*.jpg’ ) ); #testimages bambi.jpg en bami.jpg $test_mw = MagickAppendImages( $mw, TRUE); #twee images onder elkaar plakken
MagickCycleColormapImage( $mw, -200 ); #verander hue.
$grey = NewPixelWand(); PixelSetColor( $grey, ‘#888888’ ); MagickPaintTransparentImage( $bamiMw, $grey , MW_TransparentOpacity , 1000 ); #zet alle grijze pixels in bami.jpg met een fuzzyness van 1000 op 100% transparant MagickCompositeImage($bambiMW, $bamiMw, MW_AtopCompositeOp, 10,10); #klap transparante bami.jpg over bambi.jpg
$grey = NewPixelWand(); PixelSetColor( $grey, ‘#888888’ ); MagickPaintTransparentImage( $bamiMw, $grey , MW_TransparentOpacity , 2000); #zet alle grijze pixels in bami.jpg met een fuzzyness van 2000 op 100% transparant MagickCompositeImage($bambiMW, $bamiMw, MW_AtopCompositeOp, 10,10);#klap transparante bami.jpg over bambi.jpg
— Fabian de Boer 25-11-2007 15:46
Al surfend ben ik een soortgenoot tegen gekomen: webcollage.com. Deze beste man, Jamie Zawinski genaamd, is zo vriendelijk geweest om de broncode, een lap Perl script, openbaar te maken.
ApFab is niet zo heel erg onder de indruk van de uiteindelijke representatie van de collage: de afbeeldingen worden in hun geheel gebruikt, iets verkleind en met een gefetherde rand over elkaar heen geplakt. Iedere minuut ververst de collage en komen er een stuk of wat nieuwe afbeeldingen boven op de oude set te liggen. Ieder plaatje heeft een link naar zijn bron.
Wel onder de indruk is ApFab van de manier waarop dit script aan zijn random beeldmateriaal komt, via een 7 tal bronnen op best wel brute en lompe wijze:
Uit bovenstaande zoekmethoden wordt per update (ook weer random) één methode gekozen.
Fab is momenteel drukdoende het script te bestuderen en flarden hiervan te vertalen (kleine vertaalslag tussen Pearl en PHP) voor gebruik in onze machine.
Groet, Fab
Ps. En alvast de beste wensen voor 2007!!
PsII. Kom maar op met al die ICTers...
Bij het opzoeken van random beeldmateriaal, heeft Google een kadootje voor ons. De Google Random image SOAP. SOAP is een universeel protocol om te communiceren tussen servers met die met verschillende talen werken (bv tussen een server die PHP spreekt en eentje die alleen ASP spreekt). Zie hier een animatie die het kort uitlegt.
De Random Image Search (met in dit geval als zoekwoord ApFab) die we nu gebruiken om het bronmateriaal voor onze Zaps te gebruiken, maakt ook gebruik van het SOAP-protocol. Ze breiden hun database met zoekwoorden uit met ieder woord dat je invoert, vandaar dat hij zo lang inlaadt: hij geeft, na het inladen van het random plaatje, de gehele woordenlijst.
Het enige nadeel aan deze service van Google is dat de Bèta versie maar 1000 queries per dag verwerkt. Hierna zegt Google dat je maar beter naar bed kan gaan.
Dit is een goede reden om niet een webbased applicatie te schrijven. Of er voor te zorgen dat de aanvraag bij Google vanaf de computer van de gebruiker geschiedt.
Een andere manier om dit euvel te omzeilen: de standaard interface van Google Image Search gebruiken en op de één of andere manier de afbeeldingen hieruit plukken.
ApFab>Zen-Zap[ ]
Wat is een Zap[!!] Zap[!!] is de afkorting van Zapped Artificial Picture. De twee uitroeptekens staan voor Ap en Fab. Het produceren van een Zap!! begint met het vormen van een reeks zoekwoorden. Dit kan door het loslaten van een random functie op een woordenlijst, maar het kan ook een bewust samengestelde reeks zijn. Deze woorden zijn de zoekwoorden in Google Image Search. Bij iedere zoekopdracht gebruikt ApFab de bovenste afbeelding uit de lijst van Google; de op dat moment belangrijkste visuele representatie van dat woord volgens dè autoriteit op het Internet. Uit de zo ontstane verzameling afbeeldingen vormt ApFab een uniek nieuw beeld.
Wat is een Zen-Zap[ ] De Zen-Zap [ ] is het eerste type Zap[!!] die niet door ApFab geproduceerd is; zie het ontbreken van de twee uitroeptekens. In het Retort++ project heeft ApFab software ontwikkeld die continu beeldmateriaal van het net plukt, dit manipuleert en combineert en wederom terug plaatst op het Internet. Voor Retort++ heeft ApFab deze machine aan het werk gezet voor de hier aanwezige collage. Als zoektermen zijn de X / Y gpscoördinaten, de hoogte boven NAP, de lengte en breedte van deze twee muren genomen.
De Zen - Zap omschrijft zichzelf en vormt hierdoor zichzelf. Het is deze plek op het Internet. Het is Internet op deze plek.