php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-01-2004, 17:33
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard bild hochladen und verkleinern

Hi!

Folgendes:
Ich lade mit einem Formular ein Bild hoch. Dieses wird auf dem Server gespeichert und anschließend verkleinert (Breite 220, Höhe proportional dazu). Dies funktioniert so weit ganz gut. Nun kommt es bei manchen Bildern vor, dass auf dem Server nur ein schwarzes Bild abgelegt ist. Woran kann das liegen dass es bei manchen Bildern geht, und bei anderen nicht. Leider konnte ich keine regelmäßigkeit feststellen, wann es geht und wann nicht. Nachfolgender Code ist für das ganze zuständig...

Über eure Hilfe würde ich mich freuen!

PS: Das ganze liegt auf einem 1&1 Webspace! Ich habe also keine GD2 Lib! Sonder nur die 1.6.


Danke

PHP-Code:
$bildpfad "./bilder_objekte/".$_REQUEST['id'].".jpg";
copy($_FILES['bild']['tmp_name'], $bildpfad);
        
$quellbild $bildpfad;
      
$info=getimagesize("$quellbild");
$breitalt=$info[0];
$hochalt=$info[1];

$breit="220";
$hoch=ceil($hochalt*$breit/$breitalt);

$bildalt=imagecreatefromjpeg($quellbild);
$bildneu=imagecreate($breit,$hoch);
imagecopyresized($bildneu,$bildalt,0,0,0,0,$breit,$hoch,$breitalt,$hochalt);
imagejpeg($bildneu,$quellbild); 
Mit Zitat antworten
  #2 (permalink)  
Alt 13-01-2004, 18:25
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kann es sein, dass du ab und an ein CMYK bild lädtst ... oder eines mit
alpha-kanal oder mit pfad?
__________________
Kissolino.com
Mit Zitat antworten
  #3 (permalink)  
Alt 13-01-2004, 18:28
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dürfte normal nicht der fall sein, da alle bilder mit der gleichen digicam gemacht werden...
vom format,... sind es also immer die gleichen bilder!
Mit Zitat antworten
  #4 (permalink)  
Alt 13-01-2004, 18:36
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schau dir mal die user-notes im manual an http://de.php.net/manual/de/function...pyresized.php, scheint so als gäbs schonmal "farbfehler" ... die lösung steht da auch
__________________
Kissolino.com
Mit Zitat antworten
  #5 (permalink)  
Alt 13-01-2004, 19:32
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich hab mir das jetzt mal durchgelesen und verschiedene sachen getestet! ich bin jetzt soweit dass ich bei einem normalen bild, das vorher auch ging, wesentlich bessere farben erhalte. schwarze bilder hatte ich bis jetzt noch keine...

sollte alles funktionieren geht ein rießen dank an dich... !!!!!


DANKE !!!!!!!!!!!!!!
Mit Zitat antworten
  #6 (permalink)  
Alt 14-01-2004, 14:09
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also das problem besteht noch immer... :-(

hab noch jemand eine idee waran es liegen könnte?
Mit Zitat antworten
  #7 (permalink)  
Alt 14-01-2004, 14:17
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kannst du das problem nicht näher einkreisen?
- welche gemeinsamkeiten haben die bilder, die nicht gehen?
- läuft der code zB in einer schleife, so dass mehrere bilder hintereinander bearbeitet werden? => imagedestroy() nicht vergessen
- ...
__________________
Kissolino.com
Mit Zitat antworten
  #8 (permalink)  
Alt 14-01-2004, 14:30
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schleife nein!
das ist auch nur ein bild das immer hochgeladen wird!
imagedestroy hab ich ja nicht, da ich ein bild hochlade und das dann verkleinere...
ich lasse mir jetzt mal bilder zuschicken die nicht gehen. ich lade die nämlich nicht hoch, das machen andere!
Mit Zitat antworten
  #9 (permalink)  
Alt 14-01-2004, 14:39
Wotan
 Master
Links : Onlinestatus : Wotan ist offline
Registriert seit: Sep 2001
Ort: Berlin
Beiträge: 5.349
Wotan ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schau dir mal diesen Beitrag an:
http://www.php-resource.de/forum/sho...3929#post53929
__________________
*winks*
Gilbert
------------------------------------------------
Hilfe für eine Vielzahl von Problemen!!!
http://www.1st-rootserver.de/
Mit Zitat antworten
  #10 (permalink)  
Alt 14-01-2004, 15:00
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe mir den beitrag durchgelesen, finde aber keine lösung für mein problem! an was hattest du gedacht?
Mit Zitat antworten
  #11 (permalink)  
Alt 14-01-2004, 15:20
Wotan
 Master
Links : Onlinestatus : Wotan ist offline
Registriert seit: Sep 2001
Ort: Berlin
Beiträge: 5.349
Wotan ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das hier:
PHP-Code:
<?
// Bild klein
$K_MB 100;
$K_MH 150;

// Bild gross
$G_MB 200;
$G_MH 300;

if (!isset(
$abdiepost))
    {
?>
<FORM ENCTYPE="multipart/form-data" ACTION="<?PRINT $PHP_SELF;?>" METHOD=POST>
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
    Send this file: <INPUT NAME="UPLOADPIC" TYPE="file"><br>
    Pic Name: <INPUT TYPE="TEXT" NAME="pic"><br>
    <INPUT TYPE="submit" NAME="abdiepost" VALUE="Send File">
</FORM>
<?
    
}
else
    {

    
$k_size getimagesize ("$UPLOADPIC");
    
$g_size getimagesize ("$UPLOADPIC");

    
$G_UPLOADPIC "$UPLOADPIC";
    
$K_UPLOADPIC "$UPLOADPIC";

    
// Schauen wir mal, ob wir das Bild verkleinen müssen
    // Zuerst ob die maximale Breite nicht überschritten wird

    // Verarbeitung kleines Bild
    
if ($k_size[0] < $K_MB)
        {
        
// Also die Breite passt, da müssen wir nix tun
        
$K_NB $k_size[0];
        
$K_NH  $k_size[1];
        }
    else
        {
        
// Jetzt ist also Handlungsbedarf
        // Also berechnen wir den Faktor, damit wir auch die Höhe hinkriegen
        
$ProportionFaktor $k_size[0] / $K_MB;
        
$K_NB $K_MB;
        
$K_NH  round($k_size[1] / $ProportionFaktor);
        }

    
// Verarbeitung grosses Bild
    
if ($g_size[0] < $G_MB)
        {
        
// Also die Breite passt, da müssen wir nix tun
        
$G_NB $g_size[0];
        
$G_NH  $g_size[1];
        }
    else
        {
        
// Jetzt ist also Handlungsbedarf
        // Also berechnen wir den Faktor, damit wir auch die Höhe hinkriegen
        
$GProportionFaktor $g_size[0] / $G_MB;
        
$G_NB $G_MB;
        
$G_NH  round($g_size[1] / $GProportionFaktor);
        }

    
// So das mit der Breite hätten wir, nun die Höhe

    // Verarbeitung kleines Bild
    
if ($K_NH $K_MH)
        {
        
// Also die Hoehe passt, da müssen wir nix tun
        
}
    else
        {
        
// Jetzt ist also Handlungsbedarf
        // Also berechnen wir den Faktor, damit wir auch die Höhe hinkriegen
        
$ProportionFaktor $K_NH $K_MH;
        
$K_NH $K_MH;
        
$K_NB  round($K_NB $ProportionFaktor);
        }
    
    
// Verarbeitung grosses Bild
    
if ($G_NH $G_MH)
        {
        
// Also die Hoehe passt, da müssen wir nix tun
        
}
    else
        {
        
// Jetzt ist also Handlungsbedarf
        // Also berechnen wir den Faktor, damit wir auch die Höhe hinkriegen
        
$GProportionFaktor $G_NH $G_MH;
        
$G_NH $G_MH;
        
$G_NB  round($G_NB $GProportionFaktor);
        }

    
// Und jetzt geht es munter weiter <img src="images/smilies/biggrin.gif" border="0" alt="">

    // Verarbeitung kleines Bild
    
if ($k_size[0] == $K_NB && $k_size[1] == $K_NH)
        {
        
$UPLOADPIC_name "$pic-klein.jpg";
        
// Da mußte das Bild nicht verkleinert werden
        
copy ($K_UPLOADPIC"images/klein/$UPLOADPIC_name");
        echo 
"$pic-klein.jpg = pic<br>bild kann so bleiben<br><hr>";
        }
    else
        {
        
$UPLOADPIC_name "$pic-klein.jpg";
        
// Hier wird PIC verkleinert und gespeichert
        
$td=imageCreateTrueColor($K_NB$K_NH);
        
$ts=imageCreateFromJPEG($K_UPLOADPIC);
        
imageCopyResampled($td$ts0000$K_NB$K_NH$k_size[0], $k_size[1]);
        
imageJPEG($td,"images/klein/$UPLOADPIC_name");
        echo 
"$pic-klein.jpg = pic<br>Bild musste geändert werden!<br><hr>";
        }

    
// Verarbeitung grosses Bild
    
if ($g_size[0] == $G_NB && $g_size[1] == $G_NH)
        {
        
$UPLOADPIC_name "$pic-gross.jpg";
        
// Da mußte das Bild nicht verkleinert werden
        
copy ($G_UPLOADPIC"images/gross/$UPLOADPIC_name");
        echo 
"$pic-gross.jpg = pic<br>bild kann so bleiben";
        }
    else
        {
        
$UPLOADPIC_name "$pic-gross.jpg";
        
// Hier wird PIC verkleinert und gespeichert
        
$td1=imageCreateTrueColor($G_NB$G_NH);
        
$ts1=imageCreateFromJPEG($G_UPLOADPIC);
        
imageCopyResampled($td1$ts10000$G_NB$G_NH$g_size[0], $g_size[1]);
        
imageJPEG($td1,"images/gross/$UPLOADPIC_name");
        echo 
"$pic-gross.jpg = pic<br>Bild musste geändert werden!";
        }
    }
?>
Da hast du doch alles was du brauchst. Komplett funktionierender Code für JPG´s. Und da gibt es keine schwarzen Bilder.
__________________
*winks*
Gilbert
------------------------------------------------
Hilfe für eine Vielzahl von Problemen!!!
http://www.1st-rootserver.de/
Mit Zitat antworten
  #12 (permalink)  
Alt 15-01-2004, 12:04
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so, ich habe nun herausgefunden woran es liegt! die bilder die schwarz werden sind alle ziemlich groß! 1600*1400 und ca. 600kb!

jetzt weiß ich allerdings nicht an welchem wert es genau liegt! die Bytegröße ist ja eigentlich nur durch die php.ini eingeschränket, oder? und darin steht der wert auf 20M! also müsste es an den abmessungen des bildes liegen! könnt ihr mir sagen ob es da evtl. eine maximale größe gibt, bis zu der die gd lib bilder bearbeiten kann?

danke
Mit Zitat antworten
  #13 (permalink)  
Alt 15-01-2004, 12:14
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also, es liegt definitiv an den abmessungen des bildes!
ich hatte ein bild mit den abmessungen 1200x1600. dieses wurde beim upload schwarz.
nachdem ich es nur sehr gering auf 1150x1533 verkleinert habe, ging es. nach wiederholtem vergrößern (zur kontrolle) auf 1200x1600 geht es wieder nicht!

man lernt nie aus....!!
Mit Zitat antworten
  #14 (permalink)  
Alt 15-01-2004, 12:24
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kannst du mal so ein bild irgendwo online stellen ... bei meiner
img-resize-classe laufen auch grössere bilder... ohne sich schwarz
zu färben
__________________
Kissolino.com
Mit Zitat antworten
  #15 (permalink)  
Alt 15-01-2004, 12:49
magman
 Junior Member
Links : Onlinestatus : magman ist offline
Registriert seit: Oct 2002
Beiträge: 162
magman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das wird zum beispiel schwarz!

Geändert von magman (27-07-2007 um 15:10 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:50 Uhr.