Portal > Foren > PHP > PHP-Programmierung > thumbs mit gif dateien
Antwort
 
Themen-Optionen
Alt 29.08.2006, 12:26 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 18.08.2005
Beiträge: 19
Standard thumbs mit gif dateien

Hallo
Ich habe ein großes Problem
Ich habe 2 Scripte. Das eine ist in einen schlecht programmierten Online-Shop eingebunden und erstellt beim Hochladen von jpg dateien automatisch thumbs

Das 2. Script erstellt auch gif thumbs mit denen der shop arbeiten soll.

Ich tüftel nun schon 2 Tage... ich bekomm die teile nicht zusammen!
Die Dateien werde ich mal lieber Anhängen weil es doch viel quelltext ist.

unveränderte Shop datei ohne gif unterstützung
meine kläglichen versuche
Datei mit der gif funktion - leider hängt aber da ne Galerie dahinter

Vielen Dank für eure Ratschläge.
(Stand: .gif wird kopiert; Aber ohne thumb zu erzeugen)
Ps: es ist mir klar, dass das Script nur auf Servern mit neuer GD-Lib und neuen PHP läuft)
denis_hanke ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.08.2006, 17:31 Nach oben    #2
Johannes Schlichenmaier
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 395
Standard

Öhmm....
was genau ist dein Begehr?

Du hast die Absicht deinen Online-Shop soweit zu verändern, dass auch von gif-Dateien Thumbnails erstellt werden.
Ist das so richtig?

Nun, einfach eine weiche in deinem ersten Script schreiben, der für JPEG und GIF unterschiedliche Funktionen benutzt.

http://forum.developers-guide.net/showthread.php?t=83

Dieses Tutorial ist zwar für JPEG geschrieben, allerdings kann man es ja mit dieser Funktion umschreiben:
http://www.php.net/manual/de/functio...atefromgif.php

Dort steht auch, dass du eine Glib-Version < 1.6 verwenden musst.

//edit: blöde deutsche Version.... ab Version 2.0.28 geht es wieder: http://www.php.net/manual/en/functio...atefromgif.php
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 07:10 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Habe nur mal kurz mir diese Sache auf http://www.denis-hanke.de/temp/Kopie_von_upd.upload.txt angeguckt.
Hmmmmmm, recht riskant und unüberlegt programmiert.
Einige Code-Zeilen sind überflüssig doppelt geschrieben, was man durchaus vereinfachen könnte.

Bei deinen Versuchen auf http://www.denis-hanke.de/temp/upd.upload.txt ist noch etwas verwirrt.
Irgendwelche ECHO-Ausgaben haben in Functionen nichts zu suchen.
Erst recht nicht, wenn man mit Header() arbeiten will.

Ich würde vermutlich eine komplette neue Function zurecht hacken.
Ist zwar auch nimmer ganz aktuell, aber:
http://www.cix88.de/cix_php/tonne/bild_resize.php
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.08.2006, 11:07 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.203
Standard

Zitat:
Zitat von Jojo Beitrag anzeigen
http://forum.developers-guide.net/showthread.php?t=83

Dieses Tutorial ist zwar für JPEG geschrieben, allerdings kann man es ja mit dieser Funktion umschreiben
worüber ich mich dann an dieser Stelle freuen würde, wenn ich die Weiche dann in das Tut mit einbauen darf!
Also dahingehend bitte bei mir melden.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.08.2006, 18:27 Nach oben    #5
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Anlehnend ...

ich habe das hier

PHP-Code:
    public function getTumbnail($file) {
#        header("Content-type: image/jpeg");

        // Bilddaten feststellen
        
$size=getimagesize($file);
        
$breite=$size[0];
        
$hoehe=$size[1];

        
//hier die Breite festlegen
        
$Wert1 120//Der kleinere Wert
        
$Wert2 160//Der größere Wert

        
if ($hoehe $breite) {
            
$neueBreite=$Wert1;
            
$neueHoehe=$Wert2;
        } else {
            
$neueBreite=$Wert2;    $neueHoehe=$Wert1 ;
        }

        if(
$size[2]==2) {
            
// JPG
            
$altesBild=ImageCreateFromJPEG($file);
            
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
            
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
        }

#        $pic = imagejpeg($neuesBild);
        
return $neuesBild;
    } 
das einzig dumme ist er gibt mir nur Resource id #7 zurück.

hmm
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.08.2006, 18:43 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Zitat:
das einzig dumme ist er gibt mir nur Resource id #7 zurück.
Hmmmmmmmmmmmm, naja wenn du das neue Bild nicht erstellt, eigendlich auch logisch.

Zitat:
imagejpeg($neuesBild);
Warum ist das denn auskommentiert ?
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.08.2006, 19:49 Nach oben    #7
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

hmmm ... gute Frage. Nach einigem testen, weil er mir das ding auf
einer Blanken Seite dann ausgibt statt es in der Var zurück zu geben.

Suche gerade den Weg zum Glück *rolleye*

Das Problem ist wohl das hier ...

Zitat:
Mit imagejpeg() wird ein zuvor mit imagecreate() erzeugtes Bild (im) im JPEG-
Format an den Browser gesendet.
hmm ...

PHP-Code:
   public function getTumbnail($file) {
#        header("Content-type: image/jpeg");

        // Bilddaten feststellen
        
$size=getimagesize($file);
        
$breite=$size[0];
        
$hoehe=$size[1];

        
//hier die Breite festlegen
        
$Wert1 120//Der kleinere Wert
        
$Wert2 160//Der größere Wert

        
if ($hoehe $breite) {
            
$neueBreite=$Wert1;
            
$neueHoehe=$Wert2;
        } else {
            
$neueBreite=$Wert2;    $neueHoehe=$Wert1 ;
        }

        if(
$size[2]==2) {
            
// JPG
            
$altesBild=ImageCreateFromJPEG($file);
            
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
            
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
        }

        
$pic imagejpeg($neuesBild);
        
        return 
$pic;
    } 
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!

Geändert von DasMööp (31.08.2006 um 19:53 Uhr).
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.08.2006, 20:57 Nach oben    #8
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 508
Standard

willst du das thumb jetzt in ner datei speichern, oder den jpeg-code haben?
für ersteres http://www.php.net/manual/de/function.imagejpeg.php
Zitat:
Beschreibung:
int imagejpeg ( resource im [, string filename [, int quality]] )
für zweiteres:
etwas schwieriger, hab die image-funktionen durchforstet, aber sowas gibts nicht direkt. du müsstes also afaik das selbe wie oben machen, aber den "dateistream" auf ne variable umlenken.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2006, 11:59 Nach oben    #9
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

naja wenn dann zweiteres, ... bin da echt aber grübeln.
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2006, 14:34 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

1. Ist die ursprüngliche Frage eigentlich zufriedenstellend beantwortet? @denis_hanke

2. Kann man da eventuell mit output-buffering arbeiten?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2006, 17:33 Nach oben    #11
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Uch suche gerade in der Richtung ...

PHP-Code:
        ob_start("ob_iconv_handler");
#        $pic = imagejpeg($neuesBild);
        
echo imagejpeg($neuesBild);
        
$pic ob_get_contents();
        
ob_end_clean(); 
Das so geht natürlich nicht da bekommt man direkte Daten Ausgabe ...

zB.

ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!222222222222222222222222222222222222222222222 22222ÿÀ x"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3 br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×

usw ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2006, 17:49 Nach oben    #13
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

PHP-Code:
ob_start();
        
imagejpeg($neuesBild);
        
$pic ob_get_contents();
ob_end_clean(); 
Das gleiche hab das schon in varianten jetzt versucht mit
ohne "ob_iconv_handler"
PHP-Code:
        ob_start();
            
$pic imagejpeg($neuesBild);
            
ob_get_contents();
        
ob_end_clean(); 
so bringt er mir ne "1" ... werd mal weiter suchen sollte aber die richtige
Richtung sein ... hmmm
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2006, 18:01 Nach oben    #14
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Wie man hier sehen kann benötigst du ja auch noch einen header().

Also im Prinzip doch so etwas, oder?
PHP-Code:
ob_start();

header("Content-type: image/jpeg");
imagejpeg($ineuesBild);

ob_get_contents();
ob_end_clean(); 
Ungetestet und auch mit sehr viel gefährlichem Halbwissen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2006, 15:01 Nach oben    #15
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

In deinem Fall ist das Output-Buffering nicht nötig, Ben.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.03.2007, 15:23 Nach oben    #16
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 406
Standard

So ich hol den thread mal aus dem Untergrund
und zwar wie genau kann cih jetzt die funktion aus dem tut von jann ([PHP] thumbnails erstellen - kleine Funktion) so umschreiben das sie das auch von Gif tut..
ich hab jetzt zwar viel davon gelesen allerdings das noch nicht so richtig gecheckt wie ichs jetzt machen soll

danke für die hilfe

Gabriel
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.03.2007, 19:28 Nach oben    #17
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Einfach imageCreateFromJpeg durch imageCreateFromGif und imageJpeg mit durch ImageGif ersetzen.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.03.2007, 23:14 Nach oben    #18
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.203
Standard

so sieht das dann aus, wenn GIF, JPG und PNG in der Funktion untergebracht sind:
PHP-Code:
<?php
  
// Diese Funktion gibt es im Original unter [url]www.codeschnipsel.net[/url]
  // Ich habe sie ein wenig modifiziert
  
function mkthumb($img_src,     // Dateiname
                   
$img_width  "400",       // max. Größe in x-Richtung
                   
$img_height "400",       // max. Größe in y-Richtung
                   
$folder_scr "pictures",  // Ordner der normalen Bilder
                   
$des_src    "thumbs")    // Ordner der Thumbs
  
{
    
// Größe und Typ ermitteln
    
list($src_width$src_height$src_typ) = getimagesize($folder_scr."/".$img_src);

    
// neue Größe bestimmen
    
if($src_width >= $src_height)
    {
      
$new_image_width $img_width;
      
$new_image_height $src_height $img_width $src_width;
    }
    if(
$src_width $src_height)
    {
      
$new_image_height $img_width;
      
$new_image_width $src_width $img_height $src_height;
    }

    if(
$src_typ == 1)     // GIF
    
{
      
$image imagecreatefromgif($folder_scr."/".$img_src);
      
$new_image imagecreate($new_image_width$new_image_height);
      
imagecopyresampled($new_image$image0000$new_image_width,$new_image_height$src_width$src_height);
      
imagegif($new_image$des_src."/".$img_src100);
      
imagedestroy($image);
      
imagedestroy($new_image);
      return 
true;
    }
    elseif(
$src_typ == 2// JPG
    
{
      
$image imagecreatefromjpeg($folder_scr."/".$img_src);
      
$new_image imagecreatetruecolor($new_image_width$new_image_height);
      
imagecopyresampled($new_image$image0000$new_image_width,$new_image_height$src_width$src_height);
      
imagejpeg($new_image$des_src."/".$img_src100);
      
imagedestroy($image);
      
imagedestroy($new_image);
      return 
true;
    }
    elseif(
$src_typ == 3// PNG
    
{
      
$image imagecreatefrompng($folder_scr."/".$img_src);
      
$new_image imagecreatetruecolor($new_image_width$new_image_height);
      
imagecopyresampled($new_image$image0000$new_image_width,$new_image_height$src_width$src_height);
      
imagepng($new_image$des_src."/".$img_src100);
      
imagedestroy($image);
      
imagedestroy($new_image);
      return 
true;
    }
    else
    {
      return 
false;
    }
  }
?>
kann das jmd. noch um swf erweitern?


Ich habe das Tutorial entsprechend erweitert. Danke an chr!s für den Gedankenanstoß!


// edit aufgrund der pn von CIX88.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!

Geändert von Jann Hendrik (20.03.2007 um 08:07 Uhr).
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.03.2007, 07:11 Nach oben    #19
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Zitat:
kann das jmd. noch um swf erweitern?
Die GDlib kann nicht aus einen SWF ein Bild machen, jedenfalls noch nicht.
Und noch ein Gedankenanstoß per PN.
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.03.2007, 07:25 Nach oben    #20
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.203
Standard

Zitat:
Zitat von CIX88 Beitrag anzeigen
Die GDlib kann nicht aus einen SWF ein Bild machen, jedenfalls noch nicht.
Schade - aber.. ich glaube ein swf ist mir auch noch nicht bewusst begegnet... Daher wohl auch nicht tragisch!

Zitat:
Zitat von CIX88 Beitrag anzeigen
Und noch ein Gedankenanstoß per PN.
Danke - habe ich sofort aufgenommen!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen
  • Dieses Thema bei Mister Wong speichern