tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Flex
  • 2 Beitrag von DeeJTwoK
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
222
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hallo allerseits, ich steh hier grad vollkommen auf dem Schlauch.

    Ich kopiere ein großes Bild mittels imagecopyresize in ein kleineres, leeres. Zu Testzwecken wollte ich das neue Bild dann einfach mal komplett mit Farbe füllen. Das Bild bleibt unverändert:

    PHP-Code:
    private function resize($img){
        
    $size getimagesize($img);

        
    $this->width  ceil($size[0] / 5);
        
    $this->height ceil($size[1] / 5);

        
    $source      imagecreatefromjpeg($img);
        
    $destination imagecreatetruecolor$this->width$this->height);

        
    imagecopyresized$destination$source0,  0,  00$this->width$this->height$size[0], $size[1]);
        
    imagefill($destination0,0,255);
        return 
    $destination;
      } 
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    imagefill() erwartet als vierten Charakter eine von imagecolorallocate() erstellten Wert.
    Probier es also damit mal aus.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hab ich auch schon.
    Imagecolorallocate gibt einen Integerwert zurück, der sich wie folgt zusammen setzt:

    PHP-Code:
    $i $blue $green 256 $red 65536
    255 entspricht demnach #0000ff, also einem kompletten blauen Bild
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Also wenn ich die Funktion umstelle und und eine Grafik durchjage und direkt ausgebe, bekomme ich das gewünschte Ergebnis... Eine blau gefärbte Grafik.
    Das Problem scheint also irgendwo in deiner Verarbeitung zu liegen?

    PHP-Code:
    <?php

    function resize($img){
        
    $size getimagesize($img);

        
    $width  ceil($size[0] / 5);
        
    $height ceil($size[1] / 5);

        
    $source      imagecreatefrompng($img);
        
    $destination imagecreatetruecolor$width$height);

        
    imagecopyresized$destination$source0,  0,  00$width$height$size[0], $size[1]);
        
    imagefill($destination0,0,255);
        return 
    $destination;
      }  
      
    $im resize('punch.png');
    header('Content-type: image/png');
    imagepng($im);
    imagedestroy($im);
    ?>
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hi

    das ist jetzt allerdings merkwürdig. Ich habe mal ein komplett rotes Bild in paint erstellt. Das wird Problemlos zu einer kleineren blauen Grafik. Nur die Bilder die ich wirklich so bearbeiten muss lassen sich nicht färben (nur verkleinern). Ich habe es sowohl local als auch auf einem Webserver probiert (volle Zugriffsberechtigung (777) ) und das Bild( besser Foto) lässt sich nicht blau färben.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Hm, warum es passiert, weiß ich nicht, aber wenn ich ein Foto nehme (generisches Suchmaschinenbild, < 1000x1000), dann wird nur oben an der linken Ecke ein wenig ausgefüllt, mehr nicht...
    Mein Lösungsvorschlag:
    imagefilledrectangle()

    Ist laut den Kommentaren auch performanter bzw. weniger rechenintensiv für die arme GD Library.
    timestamp bedankt sich. 
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    Avatar von DeeJTwoK
    DeeJTwoK DeeJTwoK ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Beiträge
    342
    Hallo,

    die Dokumentation zu imagefill ist ein bisschen knapp/missverständlich. Es heißt auf php.net zu imagefill ja "flood fill" und "beginnend bei der Koordinate x, y".

    Die Beschreibung auf selfphp.de macht deutlich, wie imagefill wirklich funktioniert.

    Es geht also bei Photos (wo fast jeder Pixel einen anderen Farbwert hat) nicht einfach, das ganze Photo zu füllen. Bei einfachen in Paint erstellten roten Bildern klappt es natürlich schon.

    Gute Nacht...
    Flex und timestamp bedanken sich. 
    Hilfreiche Beiträge dürfen gerne über den Stern oder den "Danke" Button unter jedem Post positiv bewertet werden ;) Danke...

  8. #8
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Danke für die Aufschlussreichen Antworten
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

Ähnliche Themen

  1. OSX Installation schlägt fehl
    Von Peter Klein im Forum Mac OS
    Antworten: 10
    Letzter Beitrag: 21.11.09, 12:37
  2. Serialisierung schlägt fehl
    Von lazydog im Forum Java
    Antworten: 2
    Letzter Beitrag: 30.04.09, 16:44
  3. insert schlägt fehl
    Von hikeda_ya im Forum PHP
    Antworten: 4
    Letzter Beitrag: 11.09.06, 15:03
  4. MySQL_Query schlägt fehl
    Von xelluloid im Forum PHP
    Antworten: 1
    Letzter Beitrag: 06.10.05, 07:50
  5. Variablenübergabe schlägt fehl
    Von AlexD1979 im Forum PHP
    Antworten: 7
    Letzter Beitrag: 01.04.04, 10:43