php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.10.2006, 12:34  
Benutzer
 
Registriert seit: 13.10.2003
Beiträge: 38
PHP-Kenntnisse:
Anfänger
022.9
Standard bilder verkleinern

hallo halo,

ja wo fange ich an. ich habe mal versucht mir ein script zurecht zu basteln, mit dem hochgeladene bilder verkleinert werden. da gibt es zwei größen, einmal die kleinen bilder (300x225px) und die großen (640x480px).

das script soll so funktionieren, das es abfragt ob das hochgeladene bild größer als 640x480 ist. wenn ja dann soll das bild auf 640x480 verkleinert werden. danach soll das bild auf jeden fall auch noch auf 300x225 verkleinert werden.

die abfragen mit der größe habe ich soweit hinbekommen, leider funktioniert das verkleinern nicht / nicht mehr so richtig.

ich bekomme folgende fehlermeldung:

Zitat:
Warning: imagecreatefromjpeg(C:\Programme\xampp\tmp\php16.t mp) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 6

Warning: getimagesize(C:\Programme\xampp\tmp\php16.tmp) [function.getimagesize]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 7

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 21

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 22

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 25

Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 28

Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 29
das erste ist ja die eigentliche fehlermeldung, der rest sind dann ja nur folgefehler. meine frage ist nun, warum er das hochgeladene bild nicht öffnen kann.

hier das script das ich zum verkleiner gedacht habe:

PHP-Code:
function bild_resize($altes_bild$neues_bild$quali$soll_breit) {

    
// altes Bild
    
$im1 imageCreateFromJPEG($altes_bild);
    
$size GetImageSize ($altes_bild); // Bild einlesen
    
$imagewidth $size[0]; // Breite auslesen
    
$imageheight $size[1]; // Höhe auslesen
    
    
$maxwidth $soll_breit//maximale breite des bildes

    
if ($imagewidth $maxwidth//hier wird geprüft ob das bild größer ist als es sollte
    
{
        
$imageprop=$maxwidth/$imagewidth;
        
$imagevsize$imageheight*$imageprop;
        
$imagewidth=$maxwidth;
        
$imageheight=ceil($imagevsize);
    }

    
$im2 ImageCreateTrueColor($imagewidth$imageheight);
    
imagecopyresampled($im2$im10000$imagewidth$imageheight$bb$hh);

    
// bild erstellen
    
imagejpeg ($im2$neues_bild$quali);

    
// speicher freigeben
    
imageDestroy($im1);
    
imageDestroy($im2);

aufgerufen wird es so:
PHP-Code:
            $quali '100';
            
$soll_breit '640';
            
bild_resize($file_tmp$file_tmp$quali$soll_breit);
            
move_uploaded_file($file_tmp$verzeichniss "/g/" .$file_name); 
ich hoffe ihr versteht mich und könnt mir helfen!

ich habe auch schon die bordsuche benutzt aber leider nichts vergleichbares gefunden.

achso, der server auf dem das später laufen soll hat php5!
__________________
Ich habe eine eigene Meinung und die ist überzeugt von dem was ich sage
022.9 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.10.2006, 13:17  
Erfahrener Benutzer
 
Registriert seit: 05.02.2004
Beiträge: 166
goelliboy
goelliboy eine Nachricht über ICQ schicken
Standard

Du solltest mal lernen, was die Fehlermeldungen bedeuten. Die erste Fehlermeldung ist doch schon einsichtig:

Warning: imagecreatefromjpeg(C:\Programme\xampp\tmp\php16.t mp) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\eigene\chauken - altes design neue funktionen\fotos\resize.php on line 6

Das bedeutet, dass er die Datei nicht findet, die aufgerufen werden soll...
goelliboy ist offline  
Alt 25.10.2006, 22:32  
Benutzer
 
Registriert seit: 13.10.2003
Beiträge: 38
PHP-Kenntnisse:
Anfänger
022.9
Standard

so... ich habe die datei jetzt erstmal mit

PHP-Code:
move_uploaded_file(); 
in ein locales verzeichniss kopiert.... jetzt geht das so (ich habe natürlich das move_uploaded_file() durch copy() ersetzt).

leider sind die bilder nun nur noch schwarz, ich erhalte aber keine fehlermeldungen mehr

könnt ihr mir da evtl nochmal weiterhelfen???
__________________
Ich habe eine eigene Meinung und die ist überzeugt von dem was ich sage
022.9 ist offline  
Alt 25.10.2006, 23:22  
Benutzer
 
Registriert seit: 13.10.2003
Beiträge: 38
PHP-Kenntnisse:
Anfänger
022.9
Standard

hat sich erledigt, ich habs!

hier nun der komplette quelltext (warum jetzt geht und vorher nicht, weiß ich leider nicht, aber was solls..... :-/ )


datei resize.php:
PHP-Code:
<?php    
function bild_resize($altes_bild$neues_bild$quali$soll_breit$soll_hohe) {
    
$PicPathIn="upload/";
    
$PicPathOut="upload/";
    
    
// Orginalbild
    
$bild="$altes_bild";
    
    
// Bilddaten ermitteln
    
$sizeGetImageSize("$PicPathIn"."$bild");
    
$breite=$size[0];
    
$hoehe=$size[1];
    
$neueBreite=$soll_breit;
    
$neueHoehe=$soll_hohe;
    if(
$soll_breit $soll_hohe){
    
$neueHoeheintval($hoehe*$neueBreite/$breite);
    }else{
    
$neueBreiteintval($breite*$neueHoehe/$hoehe);
    }
    
    if(
$size[2]==1) {
    
// GIF
    
$altesBildimagecreatefromgif("$PicPathIn"."$bild");
    
$neuesBildimagecreate($neueBreite,$neueHoehe);
     
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
     
imageGIF($neuesBild,"$PicPathOut"."TN"."$bild");
    }
    
    if(
$size[2]==2) {
    
// JPG
    
$altesBildImageCreateFromJPEG("$PicPathIn"."$bild");
    
$neuesBildimagecreatetruecolor($neueBreite,$neueHoehe);
     
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
     
ImageJPEG($neuesBild,"$PicPathOut"."$bild");
    }
    
    if(
$size[2]==3) {
    
// PNG
    
$altesBildImageCreateFromPNG("$PicPathIn"."$bild");
    
$neuesBildimagecreate($neueBreite,$neueHoehe);
     
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
     
ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild");
    } 
}
?>
datei upload.php
PHP-Code:
<?php
error_reporting_E_ALL
;
session_start();
if(!isset(
$_SESSION["user"])){
    die(
"Nicht eingelogged!");
}
?>
<html>
<head>
<link rel="stylesheet" media="screen" href="../code/css.css">
</head>
<body>
<?php

$b_max 
"1048576";    //Filesize limit
$mb $b_max/1048576;
$mb round($mb2);
$datei $_POST[datei];
$hochgeladen $_POST[hochgeladen];
$pfad $_POST[verzeichniss];
$id $_GET[id];
if(!isset(
$id)){
$id $_POST[id];
}
$verzeichniss $_POST[verzeichniss];

if(!isset(
$verzeichniss)){    
    include(
"../code/pass.php");
    
    
$link mysql_connect($dbserver,$dbuser,$dbpass);
    
    if(!
$link){
        die (
"Verbindungsfehler" mysql_error());
    }
    
    
$datenbank mysql_select_db($dbname,$link);
    
    if(!
$datenbank){
        die (
"Datenbankauswahl fehler" mysql_error());
    }
    
    
$query "SELECT * FROM bilderstruktur WHERE id=$id";
    
    
$result mysql_query($query$link);
    
    if (!
$result)
    {
        die(
"Query $query ist ungültiges SQL.");
    }
    
    
$verzeichniss mysql_result($result0"verzeichniss");
}    

if(isset(
$hochgeladen)){

    include(
"resize.php");

    
$file_size $_FILES['userfile']['size'];
    
$file_name $_FILES['userfile']['name'];
    
$file_tmp $_FILES['userfile']['tmp_name'];

    print 
"<pre>";
    if(
$file_size <= $b_max){
    
        
//Umlaute aus Dateinamen entfernen
        
$umlaute = array("ä""ö""ü""Ä""Ö""Ü");
        
$ersatz = array("a""o""u""A""O""U");
        
        
        
$name str_replace($umlaute$ersatz$file_name); 

    
        
$file_name $name;
        
        
        
// Prüfen ob die Datei schon existiert.  Sonst benenn sie um!
        
$schonda = @fopen($verzeichniss "/" .$file_name"r");
        
        if(
$schonda == false){
        }else{
            
$schondazahl 1;
            
$positionvompunkt strrpos($file_name,'.');
            
$stringabpunkt substr($file_name$positionvompunkt);
            
$stringbispunkt substr($file_name0$positionvompunkt);
            
            while(
$schonda != false){
                
$file_name $stringbispunkt ."(" $schondazahl ")"$stringabpunkt;
                
$schonda = @fopen($verzeichniss "/" .$file_name"r");
                
$schondazahl++;
            }
        }
        
        
move_uploaded_file($file_tmp"upload/$file_name");
        
        
$file_tmp "upload/$file_name";
        
        
// Das Bild wird verkleinert
        
$bildsize getimagesize($file_tmp);
                
        if(
$bildsize[0] >= 640 || $bildsize[1] >= 480){
            
$quali '100';
            
$soll_breit '640';
            
$soll_hohe '480';
            
bild_resize($file_name"anders.jpg"$quali$soll_breit$soll_hohe);
            
copy("upload/".$file_name$verzeichniss "/g/" .$file_name);
        }
        
        
$quali '100';
        
$soll_breit '300';
        
$soll_hohe '225';
        
bild_resize($file_name"anders.jpg"$quali$soll_breit$soll_hohe);
        
copy("upload/".$file_name$verzeichniss "/" .$file_name);
        
unlink("upload/".$file_name);
                    
        if(
file_exists($verzeichniss "/" $file_name)){
            echo 
"<span style=\"color:green\">Die Datei wurde hochgeladen.</span>

            <a href=\"$verzeichniss/index.php?id=$id&admin=1&"
.session_name()."=".session_id()."\">Weiter</a>

            <a href=\"upload.php?id=$id&admin=1&"
.session_name()."=".session_id()."\">Noch ein Bild hochladen</a>";
        }else{
            echo 
"Fehler beim Hochladen!";
        }
    }else{
        echo 
"Die Datei ist zu groß! Sie darf nur maximal $b_max byte groß sein. Sie ist aber ".$_FILES['userfile']['size']." byte groß.";
    }
    die();
}
echo 
"<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">";
echo 
"<tr><td align=\"left\">";
echo 
"[b]Datei hochladen[/b]";
echo 
"</td></tr>";
echo 
"<tr><td width=\"100%\" align=\"left\">";
echo 
"
"
;
echo 
"Die Datei darf nicht größer als $mb MB sein.
"
;
echo 
"
"
;
echo 
"Es kann sehr lange dauern, bis das Bild hochgeladen ist. Bitte lasst das Browserfenster offen, bis ihr die Bestätigung bekommt, dass das Bild hochgeladen ist.";
echo 
"
"
;
echo 
"</span>";
echo 
"<form enctype=\"multipart/form-data\" method=\"post\" action=\"upload.php\">";
echo 
"<input type=\"File\" name=\"userfile\">
"
;
echo 
"<input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\"><input type=\"hidden\" name=\"verzeichniss\" value=\"$verzeichniss\"><input type=\"hidden\" name=\"id\" value=\"$id\">";
echo 
"<input type=\"submit\" name=\"hochgeladen\" value=\"Hochladen\"></form>";

?> 
</body>
</html>
schönen gruß an alle die das nochmal lesen
__________________
Ich habe eine eigene Meinung und die ist überzeugt von dem was ich sage
022.9 ist offline  
Alt 26.10.2006, 08:23  
CIX88
Gast
 
Beiträge: n/a
Standard

Zitat:
$altesBild= ImageCreateFromPNG("$PicPathIn"."$bild");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
Ich würde generell mit ImageCreateTrueColor() arbeiten.
ImageCreate() unterstützt nur 256 Farben, was bei einer PNG oder JPEG-Grafik etwas mistig aussieht.

Auch ImageCopyResized() würde ich nicht empfehlen.
Das Resultat sieht meist grottenhaft aus.
ImageCopyResampled() ist da besser geeignet.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Bilder verkleinern geht nicht the-duke PHP Tipps 2008 7 09.03.2008 20:08
Zip Archiv entpacken und Bilder verkleinern Simon9990 PHP Tipps 2008 5 08.10.2007 00:32
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
bilder uploaden und verkleinern PHP Tipps 2006 1 13.01.2006 00:28
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
Bilder verkleinern freitz PHP Tipps 2005 17 11.02.2005 16:00
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
[Erledigt] Bilder verkleinern, über Regex? PHP-Fortgeschrittene 10 24.10.2004 19:33
Bilder automatisch bei der Anzeige verkleinern. PHP Tipps 2004 3 16.08.2004 07:27
Welcher Provider? Will Bilder uploaden und verkleinern? PHP Tipps 2004 7 08.07.2004 16:56
Bilder vor dem download automatisch verkleinern PHP Tipps 2004 2 08.07.2004 02:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
foto online verkleinern, [function.imagecreatefromjpeg]: failed to open stream: no such file or directory, php hochgeladene bilder verkleinern, hochgeladene bilder skalieren php, online fotos verkleinern, grafik verkleinern php, bilder verkleinern 300, getimagesize verkleinern, imagecreatefromjpeg(resource id #6) [function.imagecreatefromjpeg]: failed to open stream:, bild mit getimagesize verkleinern, getimagesize bilder verkleinern, php imagecopyresampled bild wird nicht verkleinert, php script bilder verkleinern, dimension von bildern verkleinern, dimension bild verkleinern, php dimension eines bildes auslesen, $_post bild verkleinert und in eine db speichern, php gfx skalierung, \php\ datei upload grafik verkleinern, php script bild hochladen und verkleinern

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.