# Seite mit Bildern welche eine maske haben ausdrucken...



## tomate (21. Juli 2004)

Ich habe so eine Art Hausvisualisierer in js gemacht. Putzfarbe, Dachfarbe usw. können verändert werden. Realisiert habe ich das mit .gif-Dateien, welche einen tranzparenten Bereich aufweisen.

Mein Problem:
Sobald eine .gif-Datei über das Haus gelegt wird, wird z.B. nur noch der Putz ausgedruckt, nicht aber das eigentliche Haus, welches hinter der .gif-Datei liegt.

War das verständlich? ich hoffe....

Viele Grüsse
tomate


----------



## Martys (21. Juli 2004)

So wie Du es beschrieben hast und ich es verstanden habe würde ich eine extra druckoptimierte Seite anbieten.

Martys


----------



## tomate (21. Juli 2004)

an das habe ich auch schon gedacht. Geht aber nicht, da durch die Farbvielfalt einige hundert Kombinationsmöglichkeiten ergeben. Und ich kann ja jetzt nicht hergehen und im Photoshop mal kurz 500 Bilder erzeugen.

Viele Grüsse
tomate


----------



## Sven Mintel (21. Juli 2004)

Wir hatten kürzlich ein ähnliches Thema mit Herrenkonfektion....

falls du PHP zur verfügung hast, bestände die Möglichkeit, über die dortigen Grafikfunktionen ein 'echtes', einzelnes Bild , je nach Auswahl,  on the fly zu erzeugen.

Ne andere Möglichkeit fiele mir da nicht ein.....aber interessant zu wissen, dass ein Drucker anscheinend keine Transparenz bei Gifs handlen kann, wusst ich bisher garnicht.


----------



## tomate (21. Juli 2004)

Hallo fatalus,

hast Du das so mit Deiner Herrenkonfektion so gemacht? Wenn ja, kannst Du dann dazu ein paar Takte schreiben und mir die Vorgehensweise etwas erläutern?

Viele Grüsse
tomate


----------



## Sven Mintel (21. Juli 2004)

Ich hab das garnicht gemacht...es war ein Thema hier im Board, welches ich lesenderweise verfolgt habe. 

Ich werd mal zusehen, ob ich eine "Demonstration" zustande hinbekomme....aber das dauert sicher ein wenig.


----------



## Sven Mintel (21. Juli 2004)

Beispiel....die PHP-Datei, welche das Bild aus den Einzelteilen zusammensetzt und als einzelnes Bild ausgibt...
(auf den Javascript-Teil gehe ich nicht weiter ein, der  funktioniert bei dir ja)


*image.php*

```
<?php
    //Das Ergebnis wird ein PNG werden
header ("Content-type: image/png");

    //Pfad zu den Grafik-Verzeichnissen
$bildVerzeichnis='images/';

    //das Bild, welches im Normalzustand angezeigt werden soll  (hier 'haus.png')
$bildBasis=$bildVerzeichnis.'haus.png';

    //Bildobjekt erzeugen aus dem Standardbild
$bild=ImageCreateFromPng($bildBasis);

   //welche Einzelteile sollen dort hineinkopiert werden?
$layers=array('fassade','dach','fenster');

   //Grösse des Bildes
$bildGroesse=GetImageSize($bildBasis);

    //Array mit den hineinzukopierenden Einzelteilen durchlaufen
foreach($layers as $k=>$value)
    {
    //fehlt ein Parameter in der URL oder ist das entsprechende Einzelteil nicht vorhanden
    // ~~> Standardbild anzeigen ~~> Ende
    if(!isset($_GET[$value])||!is_file($bildVerzeichnis.$value.'/'.$_GET[$value].'.png'))
        {
        die(readfile($bildBasis));
        }

    //Bildobjekt erzeugen vom Einzelteil
    $layer=ImageCreateFromPng($bildVerzeichnis.$value.'/'.$_GET[$value].'.png');

    //Einzelteil in Standardbild hineinkopieren
    imageCopy($bild,$layer, 0, 0, 0, 0, $bildGroesse[0],$bildGroesse[1]);
    }

//Bild an Browser ausgeben
imagePNG($bild);
?>
```

Dieses Skript erwartet die Parameter, nach denen das Bild zusammengesetzt wird, in der URL.

Du kannst es also über dein Javascript als img-Src einbinden, bspw.:

```
image.php?fassade=magenta&dach=indigo&fenster=chartreuse
```
....würde eine Villa Kunterbunt ergeben:suspekt:

Die Bilder sind im Haupt-Grafik-Verzeichnis(hier:images)in Unterverzeichnissen abgelegt.
Die Namen dieser Unterverzeichnisse sind identisch mit den Namen der Einzelteile(fassade,dach,fenster)

Die Bilder sind transparente PNG-Grafiken(leider funktioniert die PHP-Grafikbibliothek aus Lizensgründen nicht mehr mit GIFs)...
jeweils mit den farbigen Einzelteilen. Der Name der Bilder ergibt sich aus ihrer Farbe.

Für den oben notierten Aufruf werden also in das Standard-Bild folgende Einzelteile eingefügt:

[images/fassade/magenta.png]
~~>Fassade in magenta
[images/dach/indigo.png]
~~>blaues Dach
[images/fenster/chartreuse.png]
~~>grüne Fenster

Alle Bilder sind gleich gross...aber ich schätze, das hast du ohnehin so... wär sonst recht nervig mit der Positionierung der Einzelteile.

Wenns fertig ist, siehts dann so aus(man möge mir meine grafisches Unvermögen verzeihen)


----------



## tomate (22. Juli 2004)

wow, vielen Dank!
werde ich die Tage bei mir mal testen und dann berichten, ob es bei mir funktioniert. 

Viele Grüsse
tomate


----------

