Antworten auf deine Fragen:
Neues Thema erstellen

Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

zome

Multimedia-Artist

Hallo allerseits,

es geht bei mir um folgendes: momentan arbeite ich an einer website
für mein studium, die dynamisch mit php und mysql aufgebaut ist.



Auf der Seite gibt es eine Bildergalerie



Diese kann man wenn man im Adminbereich eingeloggt ist "befüllen".



DAS funktioniert auch: das Formular wird abgeschickt - auf dieser Seite(die die Daten vom Formular entgegen nimmt) werden meine Funktionen includiert und die Funktion "upload_gallery()"
wird ausgeführt.

Code:
//-------------------------------------- FUNCTION GALLERY NEW PICTURE ------------------------------------

function upload_gallery()
{
    
$gallery_name = $_POST['upload_gallery_name'];    
    
            
$report_img = '';

$IMG_WIDTH = $_POST['strWidth'];       
$IMG_HEIGHT = $_POST['strHeight'];  
$IMG_ROOT_DB = "uploads/gallery/".$gallery_name;
$IMG_ROOT = "../../../uploads/gallery/".$gallery_name;
$IMG_ROOT2_DB = "uploads/gallery/".$gallery_name."/thumbs";
$IMG_ROOT2 = "../../../uploads/gallery/".$gallery_name."/thumbs";
$thumb = "th_";
            
$fileName = explode(".", $_FILES['strFile']['name']);
$name = str_replace(' ', '_', $fileName[0]);
            
$acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');
        

if(!in_array($_FILES['strFile']['type'], $acceptedTypes) || trim($_FILES['strFile']['tmp_name']) == "" || trim($_FILES['strFile']['tmp_name']) =="none")
    {
     echo '<div id="upload">
             <h1>Das geht leider nicht</h1>
           <p>Du hast kein Bild ausgew&auml;hlt, oder es handelt sich um kein unterst&uuml;tztes Format.</p>
          </div>';
    }
else
     {
    $img_orig_size = getimagesize($_FILES['strFile']['tmp_name']);
    $img_orig_width = $img_orig_size[0];
    $img_orig_height = $img_orig_size[1];                                                                                                
                            
    $img_original = ImageCreateFromJpeg($_FILES['strFile']['tmp_name']);
    $image_stored =  $_POST['strName']  .'-'. "$name.jpg";
    ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
        # <div id='upload'>                    
    echo "
              <h1>Das hat geklappt</h1>
           <p>Du hast hochgeladen: {$_FILES['strFile']['name']}<br>
            Neuer Name: $image_stored<br>
            Breite: $img_orig_width<br>
            H&ouml;he: $img_orig_height<br>
           </p>    
           <p>
            <a target='_blank' href='$IMG_ROOT/$image_stored'>Orginal anschauen</a>
           </p>";
                                       
$link_SQL_insert = "INSERT INTO gallery_content (gallery_name,pic_name,pic_url,thumb_url) VALUES ('$gallery_name','$image_stored','$IMG_ROOT_DB/$image_stored','$IMG_ROOT2_DB/$thumb$image_stored')";
$bool = mysql_query($link_SQL_insert);
if($bool==1) 
            {
             echo "<div class=\"report_zeile\">";
               echo "Neues Bild wurde gespeichert";
             echo "</div>";
            }
if($bool<>1) 
            {
            echo "<div class=\"report_zeile\">";
            echo "Beim Aufnehmen des Bildes ist ein Fehler aufgetreten<br>";
            echo "<a href=\"../../index.php?seite=clients\" class=\"back\">zur&uuml;ck</a>"; 
             echo "</div>";
              }

               
                            
if($img_orig_width <= $IMG_WIDTH || $img_orig_height <= $IMG_HEIGHT)
    {
    echo "<p>Das von dir ausgew&auml;hlte Bild ist kleiner als deine Angaben</p><p>Es wurde also kein Thumbnail erzeugt.</p></div>";
    }
else
    {                                    
    $img_x = $img_orig_width;
    $img_y = $img_orig_height;

    if ($img_x > $img_y ) 
        {
        $x=150;
        $y = round(($x*$img_y)/$img_x);
        }
    else
        {
        $y=150;
        $x=round(($y*$img_x)/$img_y);
        }

    $ergebnisbreite = $x;
    $ergebnishoehe = $y;
                                                
    $breite_th = '75';
    $hoehe_th = '100';
                                                
    $quality = '100';
                                                
    $altesBild = ImageCreateFromJpeg($_FILES['strFile']['tmp_name']);
    $neuesBild = imagecreatetruecolor($ergebnisbreite,$ergebnishoehe);
    $neuesBild2 = imagecreatetruecolor($breite_th,$hoehe_th);
                                                
    $pic_x = imagesx($neuesBild)/5;
    $pic_y = imagesy($neuesBild)/5;
                                            
    #Skalierung    
    imagecopyresampled($neuesBild, $altesBild, 0 , 0 , 0 , 0, $x, $y, $img_x, $img_y);    
    #Kopieren eines Ausschnitts vom Skalierten Bild in ein neuees mit der Zielgrösse 
    imagecopy($neuesBild2,$neuesBild,0,0,$pic_x,$pic_y,$breite_th,$hoehe_th);                                                                                                                                                                                                            
            
                                                
    $img_name = "th_$image_stored";
    ImageJPEG($neuesBild2,"$IMG_ROOT2/$img_name",$quality);
    ImageDestroy($neuesBild);
    $mg_new_size = filesize("$IMG_ROOT2/$img_name");
                                            
    echo "<h2>Das erzeugte Thumbnail</h2>
           <p>Deine Einstellungen: $IMG_WIDTH x $IMG_HEIGHT<br>
            Breite: $img_new_width<br>
            H&ouml;he: $img_new_height<br>
            Gr&ouml;&szlig;e: $mg_new_size (in bytes)
           </p>
            <img src='$IMG_ROOT2/$img_name' />";
    //    </div>";                                                             
                                    
        
    }
                            
                    
    }
}
Wie gesagt das funktioniert: neues Bild wird hochgeladen, thumbnail wird erstellt und die Namen und Pfade werden in die Datenbank gespeichert.



Ich weiß sieht noch ziemlich unaufgeräumt aus, und die Ausgaben unter dem thumb mal bitte ignorieren.

OK, nun zu meinem eigentlichen Problem:
Ich möchte dem Admin die Möglichkeit geben einzelne Bilder zu berarbeiten, d.h. Bild austauschen und Titel ändern.

Er kann sich das Bild auswählen und kommt auf folgendes Formular:



Wird nur der Name geändert -> so wird nur der Name geändert und das
Bild bleibt;
wird noch zusätzlich ein Bild hochgeladen -> so werden die alten Bilder(grosses Bild und thumbnail) gelöscht, das neue Bild hochgeladen,
thumbnail erstellt,Pfade in datenbank usw.

Ich bediene mich wieder der oben genannten Funktion, nur leicht umgeschrieben - das Problem: das thumbnail ist leider SCHWARZ.



Die Pfade sind alle gleich - das "grosse" Bild wird auch erzeugt und in der
Galerie angezeigt.

Ich dachte vielleicht wird das hochgeladene Bild nicht gefunden(was dann noch verkleinert und beschnitten wird), aber dann wäre das "grosse"Bild ja
auch nicht da. Ich habe viel probiert und nach Fehlern gesucht, leider erfolglos.

Hier die Update Funktion:

Code:
//-----------------------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------- FUNCTION EDIT GALLERY ENTRY(PIC) ---------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------------
 
function edit_pic()
{
        
 $id = $_POST['id'];        
 $gallery_name = $_POST['gallery_name'];    
 $pic_name = $_POST['strName'];    

 $query = "SELECT pic_name FROM gallery_content WHERE id = '$id'";
 $sql = mysql_query($query) or die($query.' Fehlermeldung der DB: '.mysql_error());
 $row = mysql_fetch_object($sql);

 $pic_name_db = $row->pic_name;        
    
//-------------------------------------- Falls neuer Bildname naders als der alte Bildname ist -> Bildname Update  -------------------------------------------

 if ($pic_name_db != $pic_name)
    {    
        
      $sql="UPDATE gallery_content SET pic_name = '".$pic_name."' WHERE ID = ".$id; 
      $bool = mysql_query($sql);
 
      if($bool==1) 
        {
        echo "<div class=\"report_zeile\">";
            echo "Bildname $pic_name_db wurde in $pic_name ge&auml;ndert";
           echo "</div>";
    
        }
        if($bool<>1) 
        {
        echo "<div class=\"report_zeile\">";
        echo "Beim Aufnehmen des neuen Bildnamens ist ein Fehler aufgetreten"; 
        echo "</div>";
        }
          
    }        

 //-------------------------------------- Falls Bild mithochgeladen wurde -> altes Bild löschen und neues uploaden  -------------------------------------------

if (is_uploaded_file($_FILES['strFile']['tmp_name'])) 
{        

$link_select_sql = "SELECT * FROM gallery_content WHERE id = '$id' LIMIT 1";
$link_select_result = mysql_query($link_select_sql); 
  
while($links = mysql_fetch_array($link_select_result))
 {
    $datei = "../../../".$links['pic_url']; 
    $datei_th = "../../../".$links['thumb_url']; 

    $picture_name = $links['pic_name'];
 }
    
unlink($datei);
unlink($datei_th);

echo "<div class=\"report_zeile\">";
echo "Das Bild <font color=\"#CC6600\">$pic_name_db und thumbnail</font> wurden gel&ouml;scht";
echo "</div>";
//echo "<script type=\"text/javascript\">";
//echo "setback_gallery( );";

            
            
$report_img = '';


$IMG_WIDTH = 75;       
$IMG_HEIGHT = 100;  
$IMG_ROOT_DB = "uploads/gallery/".$gallery_name;
$IMG_ROOT = "../../../uploads/gallery/".$gallery_name;
$IMG_ROOT2_DB = "uploads/gallery/".$gallery_name."/thumbs";
$IMG_ROOT2 = "../../../uploads/gallery/".$gallery_name."/thumbs";
$thumb = "th_";
            
$fileName = explode(".", $_FILES['strFile']['name']);
$name = str_replace(' ', '_', $fileName[0]);
            
$acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');
        

if(!in_array($_FILES['strFile']['type'], $acceptedTypes) || trim($_FILES['strFile']['tmp_name']) == "" || trim($_FILES['strFile']['tmp_name']) =="none")
    {
     echo '<div id="upload">
             <h1>Das geht leider nicht</h1>
           <p>Du hast kein Bild ausgew&auml;hlt, oder es handelt sich um kein unterst&uuml;tztes Format.</p>
          </div>';
    }
else
     {
    $img_orig_size = getimagesize($_FILES['strFile']['tmp_name']);
    $img_orig_width = $img_orig_size[0];
    $img_orig_height = $img_orig_size[1];                                                                                                
                            
    $img_original = ImageCreateFromJpeg($_FILES['strFile']['tmp_name']);
    $image_stored =  $_POST['strName'];
    ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
        # <div id='upload'>        
        
    echo "
              <h1>Das hat geklappt</h1>
           <p>Du hast hochgeladen: {$_FILES['strFile']['name']}<br>
            Neuer Name: $image_stored<br>
            Breite: $img_orig_width<br>
            H&ouml;he: $img_orig_height<br>
           </p>    
           <p>
            <a target='_blank' href='$IMG_ROOT/$image_stored'>Orginal anschauen</a>
           </p>";
        

$link_SQL_insert ="UPDATE gallery_content SET pic_url = '$IMG_ROOT_DB/$image_stored', thumb_url = '$IMG_ROOT2_DB/$thumb$image_stored' WHERE ID = ".$id; 
$bool = mysql_query($link_SQL_insert);
if($bool==1) 
            {
             echo "<div class=\"report_zeile\">";
               echo "Altes Bild wurde ersetzt";
             echo "</div>";
            }
if($bool<>1) 
            {
            echo "<div class=\"report_zeile\">";
            echo "Beim Aufnehmen des Bildes ist ein Fehler aufgetreten<br>";
            echo "<a href=\"../../index.php?seite=clients\" class=\"back\">zur&uuml;ck</a>"; 
             echo "</div>";
              }


$breite_th = '75';
$hoehe_th = '100';
$ergebnisbreite = $x;
$ergebnishoehe = $y;
                                                
$quality = '100';           
                            

if($img_orig_width <= $IMG_WIDTH || $img_orig_height <= $IMG_HEIGHT)
    {
    echo "<p>Das von dir ausgew&auml;hlte Bild ist kleiner als die Vorgaben</p><p>Es wurde also kein Thumbnail erzeugt.</p></div>";
    }
else
    {                                    
    $img_x = $img_orig_width;
    $img_y = $img_orig_height;

    if ($img_x > $img_y ) 
        {
        $x=150;
        $y = round(($x*$img_y)/$img_x);
        }
    else
        {
        $y=150;
        $x=round(($y*$img_x)/$img_y);
        }

    
                                                
    $altesBild = $img_original;
    $neuesBild = imagecreatetruecolor($ergebnisbreite,$ergebnishoehe);
    $neuesBild2 = imagecreatetruecolor($breite_th,$hoehe_th);
                                                
    $pic_x = imagesx($neuesBild)/5;
    $pic_y = imagesy($neuesBild)/5;
                                            
    #Skalierung    
    imagecopyresampled($neuesBild,$altesBild, 0, 0, 0, 0, $x, $y, $img_x, $img_y);    
    #Kopieren eines Ausschnitts vom Skalierten Bild in ein neuees mit der Zielgrösse 
    imagecopy($neuesBild2,$neuesBild,0,0,$pic_x,$pic_y,$breite_th,$hoehe_th);                                                                                                                                                                                                            
    
                                                
    $img_name = "th_$image_stored";
    ImageJPEG($neuesBild2,"$IMG_ROOT2/$img_name",$quality);
    ImageDestroy($neuesBild);
    $mg_new_size = filesize("$IMG_ROOT2/$img_name");
                                            
    echo "<h2>Das erzeugte Thumbnail</h2>
           <p>Deine Einstellungen: $IMG_WIDTH x $IMG_HEIGHT<br>
            Breite: $img_new_width<br>
            H&ouml;he: $img_new_height<br>
            Gr&ouml;&szlig;e: $mg_new_size (in bytes)
           </p>
            <img src='$IMG_ROOT2/$img_name' />";
    //    </div>";                                                             
                                    
        
    }
                            
                    
    }
} 
else
{

            echo "<div class=\"report_zeile\">";
            echo "Das Bild wurde nicht ver&auml;ndert";
             echo "</div>";

}

}

//-----------------------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------- FUNCTION EDIT GALLERY ENTRY(PIC) END ---------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------------

?>
Ich denke das Problem liegt im code relativ weit unten, bei
"#Skalierung" also bei:
imagecopyresampled($neuesBild,$altesBild, 0, 0, 0, 0, $x, $y, $img_x, $img_y);
.
.
.

Ich weiß, das war jetzt sehr langatmig und ausführlich und mein code
kann man sicherlich besser schreiben (für Vorschläge bin ich offen),
vielleicht hatte jemand hier auch schon ein ähnliches Problem oder weiß einen Lösungsansatz.

Vielen Dank für eure Hilfe:)
 

lachender_engel

Aktives Mitglied

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Ich meine die Funktion imagecopyresampled basiert auf der GD-Lib.
Hast Du diese auf Deinem Server installiert?
 

mommel

mv dau /dev/null

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

imagecopyresampled wird auch schon im ersten script benutzt und funktioniert anscheinend da auch also wirds nicht an der gd lib liegen, obendrein ist sie seit PHP 4.0.6 ein Standartpaket PHP: imagecopyresampled - Manual

lass dir doch mal die kompletten Variabeln ausgeben, bzw gib mal $altesBild aus und schau ob das überhaupt ein Bild ist
 
Zuletzt bearbeitet:

zome

Multimedia-Artist

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Hey Mommel danke für deine Antwort, du hast völlig Recht: GD Lib ist natürlich installiert. Und das mit dem Bild bzw. Variable ausgeben lassen, habe ich probiert -
da kommt dann sowas raus: "reference#13"
keine Ahnung was das heisst.

Danke für eure Antworten

Aber komisch ist es doch - das ist genau derselbe Aufruf wie wenn ich zum ersten Mal ein Bild hochlade - hm ich lass mir da mal die VARs ausgeben...

Bitte 'Edit' benutzen um Doppelposts zu vermeiden
 
Zuletzt bearbeitet von einem Moderator:

mommel

mv dau /dev/null

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Mhh komisch scheint das du ne valide Resource hast somit müsstest du auch das Bild verändern können. Ich hol mir das Script mal bei Zeiten auf nen Server und schau's mir mal genau an.
 

zome

Multimedia-Artist

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Hmmm - keiner mehr irgendeinen Vorschlag?
 

netbandit

Aktives Mitglied

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Da steigt ja keiner mehr durch, ist irgendwie doppelt, while-schleife trotz Limit 1 usw.

Mach Dir eine Funktion, die ausschliesslich für das Verkleinern der Bilder zuständig ist und bei Erfolg true zurückgibt. Kannste dann prüfen und Deine DB aktualisieren.

Würde sagen Du hast Dich hier ein wenig vergallopiert :hmpf:
 

zome

Multimedia-Artist

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Hey Netbandit, danke für Deine Kritik. Ich hab die Funktion(das ist eine Funktion) mittlerweile etwas sauberer formatiert. "Limit" kommt aber nur bei auslesen des Bildnamens etc. nach der "id" in der Funktion vor.

Und von wegen doppelt versteh ich nicht ganz - einmal wird das Bild eben upgeloaded ohne "schnickschnak" und beim zweiten Mal wird eben skaliert und beschnitten, aber wirklich doppelt ist da nichts.

Vielleicht kann man das schöner und kürzer schreiben, über Vorschläge würde ich mich freuen.


Code:
function edit_pic()
{
        
 $id = $_POST['id'];        
 $gallery_name = $_POST['gallery_name'];    
 $pic_name = $_POST['strName'];    

 $query = "SELECT pic_name FROM gallery_content WHERE id = '$id'";
 $sql = mysql_query($query) or die($query.' Fehlermeldung der DB: '.mysql_error());
 $row = mysql_fetch_object($sql);

 $pic_name_db = $row->pic_name;        
    
//-------------------------------------- Falls neuer Bildname naders als der alte Bildname ist -> Bildname Update  -------------------------------------------

 if ($pic_name_db != $pic_name)
    {    
        
      $sql="UPDATE gallery_content SET pic_name = '".$pic_name."' WHERE ID = ".$id; 
      $bool = mysql_query($sql);
 
      if($bool==1) 
        {
        echo "<div class=\"report_zeile\">";
            echo "Bildname <font color=\"#CC6600\">$pic_name_db</font> wurde in <font color=\"#CC6600\">$pic_name</font> ge&auml;ndert";
           echo "</div>";
        echo "<script type=\"text/javascript\">";
        echo "setback_gallery( );";
        echo "</script>";
    
        }
        if($bool<>1) 
        {
        echo "<div class=\"report_zeile\">";
        echo "Beim Aufnehmen des neuen Bildnamens ist ein Fehler aufgetreten"; 
        echo "</div>";
        }
          
    }        

 //-------------------------------------- Falls Bild mithochgeladen wurde -> altes Bild löschen und neues uploaden  -------------------------------------------

if (is_uploaded_file($_FILES['strFile']['tmp_name'])) 
{        

$link_select_sql = "SELECT * FROM gallery_content WHERE id = '$id' LIMIT 1";
$link_select_result = mysql_query($link_select_sql); 
  
while($links = mysql_fetch_array($link_select_result))
 {
    $datei = "../../../".$links['pic_url']; 
    $datei_th = "../../../".$links['thumb_url']; 

    $picture_name = $links['pic_name'];
 }
    
if (unlink($datei) && unlink($datei_th))
{
    echo "<div class=\"report_zeile\">";
    echo "Das Bild <font color=\"#CC6600\">$pic_name_db und thumbnail</font> wurden gel&ouml;scht";
    echo "</div>";
    
}    
else
{
    echo "<div class=\"report_zeile\">";
    echo "Das Bild <font color=\"#CC6600\">$pic_name_db und thumbnail</font> konnten nicht gel&ouml;scht werden";
    echo "<a href=\"../../index.php?seite=gallery\" class=\"back\">zur&uuml;ck</a>"; 
     echo "</div>";
}


$report_img = '';


$IMG_WIDTH = 75;       
$IMG_HEIGHT = 100;  
$IMG_ROOT_DB = "uploads/gallery/".$gallery_name;
$IMG_ROOT = "../../../uploads/gallery/".$gallery_name;
$IMG_ROOT2_DB = "uploads/gallery/".$gallery_name."/thumbs";
$IMG_ROOT2 = "../../../uploads/gallery/".$gallery_name."/thumbs";
$thumb = "th_";
            
$fileName = explode(".", $_FILES['strFile']['name']);
$name = str_replace(' ', '_', $fileName[0]);
            
$acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');
        

if(!in_array($_FILES['strFile']['type'], $acceptedTypes) || trim($_FILES['strFile']['tmp_name']) == "" || trim($_FILES['strFile']['tmp_name']) =="none")
    {
     echo '<div id="upload">
             <h1>Das geht leider nicht</h1>
           <p>Du hast kein Bild ausgew&auml;hlt, oder es handelt sich um kein unterst&uuml;tztes Format.</p>
          </div>';
    }
else
     {
    $img_orig_size = getimagesize($_FILES['strFile']['tmp_name']);
    $img_orig_width = $img_orig_size[0];
    $img_orig_height = $img_orig_size[1];                                                                                                
                            
    $img_original = ImageCreateFromJpeg($_FILES['strFile']['tmp_name']);
    $image_stored =  $_POST['strName'];
    ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
        # <div id='upload'>        
        
    echo "
              <div class=\"report_zeile\">Bild erfolgreich hochgeladen</div>
           <div class=\"report_zeile\">Bild: {$_FILES['strFile']['name']}</div>
            <div class=\"report_zeile\">Neuer Name: $image_stored</div>
            <div class=\"report_zeile\">Breite: $img_orig_width</div>
            <div class=\"report_zeile\">H&ouml;he: $img_orig_height</div>
           <div class=\"report_zeile\">
            <a target='_blank' href='$IMG_ROOT/$image_stored'>Orginal anschauen</a>
            </div>
           ";
        

$link_SQL_insert ="UPDATE gallery_content SET pic_url = '$IMG_ROOT_DB/$image_stored', thumb_url = '$IMG_ROOT2_DB/$thumb$image_stored' WHERE ID = ".$id; 
$bool = mysql_query($link_SQL_insert);
if($bool==1) 
            {
             echo "<div class=\"report_zeile\">";
               echo "Altes Bild wurde ersetzt";
             echo "</div>";
             echo "<script type=\"text/javascript\">";
            echo "setback_gallery( );";
            echo "</script>";
            }
if($bool<>1) 
            {
            echo "<div class=\"report_zeile\">";
            echo "Beim Aufnehmen des Bildes ist ein Fehler aufgetreten<br>";
            echo "<a href=\"../../index.php?seite=clients\" class=\"back\">zur&uuml;ck</a>"; 
             echo "</div>";
              }


$breite_th = '75';
$hoehe_th = '100';
$ergebnisbreite = $x;
$ergebnishoehe = $y;
                                                
$quality = '100';           
                            

if($img_orig_width <= $IMG_WIDTH || $img_orig_height <= $IMG_HEIGHT)
    {
    echo "<p>Das von dir ausgew&auml;hlte Bild ist kleiner als die Vorgaben</p><p>Es wurde also kein Thumbnail erzeugt.</p></div>";
    }
else
    {                                    
    $img_x = $img_orig_width;
    $img_y = $img_orig_height;

    if ($img_x > $img_y ) 
        {
        $x=150;
        $y = round(($x*$img_y)/$img_x);
        }
    else
        {
        $y=150;
        $x=round(($y*$img_x)/$img_y);
        }

    
                                                
    $altesBild = $img_original;
    $neuesBild = imagecreatetruecolor($ergebnisbreite,$ergebnishoehe);
    $neuesBild2 = imagecreatetruecolor($breite_th,$hoehe_th);
                                                
    $pic_x = imagesx($neuesBild)/5;
    $pic_y = imagesy($neuesBild)/5;
                                            
    #Skalierung    
    imagecopyresampled($neuesBild,$altesBild, 0, 0, 0, 0, $x, $y, $img_x, $img_y);    
    #Kopieren eines Ausschnitts vom Skalierten Bild in ein neuees mit der Zielgrösse 
    imagecopy($neuesBild2,$neuesBild,0,0,$pic_x,$pic_y,$breite_th,$hoehe_th);                                                                                                                                                                                                            
    
                                                
    $img_name = "th_$image_stored";
    ImageJPEG($neuesBild2,"$IMG_ROOT2/$img_name",$quality);
    ImageDestroy($neuesBild);
    $mg_new_size = filesize("$IMG_ROOT2/$img_name");
                                            
    echo "<div class=\"report_zeile\">Das erzeugte Thumbnail:</div>
           <div class=\"report_zeile\">Gr&ouml;&szlig;e: $mg_new_size (in bytes)</div>
            <img src='$IMG_ROOT2/$img_name' />";
    //    </div>";                                                             
                                    
        
    }
                            
                    
    }
} 
else
{

            echo "<div class=\"report_zeile\">";
            echo "Das Bild wurde nicht ver&auml;ndert";
             echo "</div>";

}

}
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Wenn das Bild schwarz ist, läuft zwar generell die Funktion sauber durch, erhält aber keine Bilddaten aus dem Original. Also ist die Frage in deinem Script zu klären, ob die Bilddaten oder das Original korrekt erreicht werden per path oder ob die Bilddatenübergabe korrrekt abläuft.

Prüf diese beiden Punkte und du wirst ein korrektes Ergebnis erhalten.
 

zome

Multimedia-Artist

AW: Bildupload(Update) -> Bild in Ordnung, thumbnail schwarz

Hey Saila, danke für deinen Tipp.
ich hatte zwei Variablen zu früh definiert. Jetzt lkappt soweit alles, danke.
Jetzt habe ich aber noch folgendes Problem:
wenn das bild ersetzt wird, der Name aber nicht geändert wird, wird mir noch das alte thumbnail angezeigt, obwohl es gar nicht mehr existiert.

Ich denke das hängt noch im Cache vom browser, von der Datenbank(?)



Hier ist das alte Bild zu sehen - in der Galerie selbst ist schon das neue thumbnail nach refresh.


>>22.10:

ich hab`nun meine Tabellen mal gelöscht (also den Inhalt -> id wieder zurückgesetzt), die Bilder auch - eine neu Galerie erstellt(Verzeichnisse und DB Eintrag) ein paar Bilder neu
hochgeladen.
Und jetzt funktioniert alles - super;

danke nochmal für eure Ratschläge

Gibt`s hier irgendwo `n Button für "Problem gelöst"?
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.635
Beiträge
1.538.476
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben