Ich wollte mal so n paar "supereffekte" mit der GD Librarie von PHP schreiben, aber das ganze scheitert-warum auch immer-schon beim schlagschatten.
Mir dient da folgender Code:
(Das ganze ist mit OOP umwickelt)
PHP-Code:
function draw ($img$moment) {
        switch (
$moment) {
            case 
"afterComp":
                
$sizeX=imageSX($img);
                
$sizeY=imageSY($img);
                
$sPer=($this->strength/$this->width);
                
$i=$sPer;
                while (
$i<$this->strength) {
                    
$color=imageColorAllocatAlpha($img$this->color[0], $this->color[1], $this->color[2]);
                    
$y=0;
                    while (
$y<$sizeY) {
                        
$x=0;
                        while (
$x<$sizeX) {
                            
$px=imageGetPixel($img$x$y);
                            if (
$px["alpha"]==127) {
                                
$px2=imageGetPixel($img, ($x+1), $y);
                                if (
$px2["alpha"]!=127) {
                                    
imageSetPixel($img$x$y$color);
                                }
                            } else {  
                                
$px2=imageGetPixel($img, ($x-1), $y);
                                if (
$px2["alpha"]!=0) {
                                    
imageSetPixel($img$x$y$color);
                                }
                            } 
                            
$x++;
                        }
                        
$y++;
                    }
                    
$x=0;
                    while (
$x<$sizeX) {
                        
$y=0;
                        while (
$y<$sizeY) {
                            
$px=imageGetPixel($img$x$y);
                            if (
$px["alpha"]==127) {
                                
$px2=imageGetPixel($img$x, ($y+1));
                                if (
$px2["alpha"]!=127) {
                                    
imageSetPixel($img$x$y$color);
                                }
                            } else {  
                                
$px2=imageGetPixel($img$x, ($y+1));
                                if (
$px2["alpha"]!=0) {
                                    
imageSetPixel($img$x$y$color);
                                }
                            }
                            
$y++;
                        }
                        
$x++;
                    }
                    
$i+=$sPer;
                }
            break;
            case 
"component":
                
// huhu
            
break;
            default:
                throw new 
Exception("Effekt droppedShadow called in non-existing case: ".$moment);
            break;
        } 
Ich Zeichne also eine Linie (auf 100x100px)
PHP-Code:
imageLine($img10104040imageColorAllocatAlpha($img0000)); 
und rufe dann (indirekt)
PHP-Code:
$effekt->draw($img"afterComp"); 
auf. Aber das Ergebnis verwundert mich total (Anhang 1)
Und wenn ich nun nen Schatteneffekt machen will, schreibe ich
PHP-Code:
$color=imageColorAllocatAlpha($img$this->color[0], $this->color[1], $this->color[2], 80); 
und dann ist meine Schwarze linie weg o.0? Ich glaub ich check den eigenen Algorhytmus nichtmehr, hif mir mal bitte jmd auf die sprünge oder sag mir worans liegt, das des nicht so funktioniert wie ich das erwarte ...
test.png
Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!