art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.08.2002, 13:24   #1
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg

Bilddatenbank mit thumbnail oder nicht?


Hi Leute!

Ich möchte mir gern eine Bilddatenbank anlegen.
Natürlich alles mit PHP, damit ich beliebig Bild hinzufügen und löschen kann.
Auch ein Kommentarfeld soll es geben... alles kein Problem und wenn frage ich schon nach

Vorab möchte ich nur wissen, soll ich kleine Thumbnails mit hochspielen oder kann/ soll PHP diese aus den normalen Fotos erstellen?
Was ist einfacher und warum? Traffic? CPU Auslastung und und und.

Danke
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten


Alt 22.08.2002, 13:29   #2
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
ich würde auf jeden fall mit php thumb erstellen, aber nur auf bedarf sprich: wenn Thumbnail vorhanden das nehmen sonst eins erstellen geht mit diesem script von seb (ist hier schonmal veröffentlich musst denn beiitrag mal suchen, hab ihn gerade nicht gefunden:
PHP-Code:
function createThumb($imgfile)
{
    global 
$rebuild_thumbs$dir_thumbs$dir_images;

    
$size=getimagesize($dir_images.$imgfile);
    
$width=$size[0]; 
    
$height=$size[1]; 
    
    
$prefix_thumbs'thumbs_';
    
$thumbnail_width 120;
    
$dir_thumbs 'gfx_klein/';
    
$dir_images 'gfx/';
    
$thumbs_per_row 3;


    
$thumbnail_height intval($height*$thumbnail_width/$width);

    
$thumbfile $dir_thumbs $prefix_thumbs $imgfile;


    
// if thumbnail file for this image is missing or $rebuild_thumbs is set ...

    
if(!file_exists($thumbfile) || $rebuild_thumbs)        
    {
        
// ... create a new one

        
$handle_image ImageCreateFromJPEG($dir_images $imgfile);
        
$handle_thumb ImageCreate($thumbnail_width$thumbnail_height);
        
        
$width imageSX($handle_image);
        
$height imageSY($handle_image);
        
        
imagecopyresized ($handle_thumb$handle_image0000$thumbnail_width $thumbnail_height$width$height);

        
imageJPEG($handle_thumb$thumbfile);
    }

    return 
$thumbfile;        // return path to thumbfile

__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 22.08.2002, 23:47   #3
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
ähm...genau

Die Funktion musst Du vor jeder HTML-Ausgabe für ein Thumbnail (<img src="blabla...">) mit dem Dateinamen des jeweiligen Fotos aufrufen, sinnigerweise in einer Schleife, die die Tabelle mit den Thumbs erzeugt.
Sie erzeugt dann eine neue Thumbnail-Datei, falls noch keine existiert und gibt dir in jedem Fall ihren Pfad zurück, den du dann im <img>-Tag für das Thumbnail einfügen kannst.

Funktioniert bisher übrigens nur mit JPGs und staucht sämtliche Thumbs auf eine einheitliche Größe, d.h. sie werden nicht proportional korrekt verkleinert und werden daher verzerrt.

Der Grund ist nicht, dass sowas schwerer zu machen wär, ich wollt einfach alle Thumbs gleich groß haben. Kann man aber leicht ändern...
seb ist offline   Mit Zitat antworten
Alt 22.08.2002, 23:53   #4
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
hallo seb,
wenn du hingeguckt hättest würdest du sehen, dass ich das schon bereits geändert habe!! die vorschaubilder sind nicht mehr verzerrt.
__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 22.08.2002, 23:55   #5
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
oha...*g*...ich bin davon ausgegangen, dass ich den code kenn und hab ihn deshalb nicht weiter beachtet
seb ist offline   Mit Zitat antworten
Alt 22.08.2002, 23:57   #6
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
dachte ich mir...
__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 23.08.2002, 19:48   #7
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Diese Variante ist aber nicht sehr gut, weil:

- die Tumbnails nur in einer Standardpalette von 256 Farben erstellt werden

- die Qualität der Verkleinerung/Vergrößerung nicht sehr toll ist

- für jedes Bild das Tumbnail immer wieder neu erstellt wird - das kostet bei mehr als 20 Bilder IRRE Serverperformance!

Ich hab mal eine andere Version angehangen, die bessere Tumbnails erstellt und auch einen Cache anlegt, damit bereits erstellte Tumbnails nicht nochmals erstellt werden müssen.

Mit dieser Version ist es auch Möglich, Bilder proportional skalieren zu lassen oder auf ein bestimmtes maximum (höhe/breite) zu setzen. Die Anleitung liegt bei
Angehängte Dateien
Dateityp: zip thumbs.zip (3,1 KB, 66x aufgerufen)
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 23.08.2002, 22:15   #8
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
EEEEEY...wer macht hier mein schönes Script schlecht?
Und vor allem mit welchen Argumenten?

Ich glaub das kann ich nicht unkommentiert lassen:

Zitat:
- die Tumbnails nur in einer Standardpalette von 256 Farben erstellt werden
Unwahr: Die generierten Thumbs sind JPEGS in Echtfarbe (24 Bit).
Möglich, wenngleich unwahrscheinlich, dass es von der GD-Version abhängt, bei mir isses jedenfalls so.

Zitat:
- die Qualität der Verkleinerung/Vergrößerung nicht sehr toll ist
Teilweise wahr bzw. Anspruchssache:
Für Thumbnails find ich die Qualität der Verkleinerung per imagecopyresized() völlig ausreichend.
Wer möchte, kann diese Funktion durch imagecopyresampled() ersetzen, welche bessere Ergebnisse erzielt, allerdings in älteren Versionen der GD-Lib nicht verfügbar ist (u.a. der meines Webhosters, daher hier imagecopyresized()).


Zitat:
- für jedes Bild das Tumbnail immer wieder neu erstellt wird - das kostet bei mehr als 20 Bilder IRRE Serverperformance!
Gelogen. Mein Script erzeugt die Thumbs keineswegs 'on the fly', sondern speichert sie dauerhaft und generiert sie nur dann neu, wenn die entsprechende Thumbnail-Datei nicht gefunden wurde bzw. der User eine Neuerzeugung ausdrücklich wünscht (Flag setzen).

Du hast den Thread hier überhaupt nicht gelesen, kann das sein?



Zitat:
Mit dieser Version ist es auch Möglich, Bilder proportional skalieren zu lassen oder auf ein bestimmtes maximum (höhe/breite) zu setzen.
Mit der hier geposteten ebenfalls, siehe jph's vorletzter Beitrag.


Okay, das sei hiermit klargestellt

Geändert von seb (23.08.2002 um 22:24 Uhr).
seb ist offline   Mit Zitat antworten
Alt 24.08.2002, 15:17   #9
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Du benutzt zum erstellen des Bildes ImageCreate(), und dies benutzt nur eine Farbpalette von 256 Farben - egal, ob das Bild dann als gif, jpg oder png gespeichert wird.

Abhilfe schafft man dadurch nur mit imagecreatetruecolor() ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 24.08.2002, 15:57   #10
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
Du benutzt zum erstellen des Bildes ImageCreate(), und dies benutzt nur eine Farbpalette von 256 Farben - egal, ob das Bild dann als gif, jpg oder png gespeichert wird.
-> siehe Anhang. Oder lügt das Programm?
Angehängte Grafiken
Dateityp: jpg bildinfo.jpg (49,3 KB, 80x aufgerufen)
seb ist offline   Mit Zitat antworten
Alt 24.08.2002, 16:15   #11
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Man, Du kapierst mich wohl nicht *g*

Klar, es gibt an, dass das Bild ein jpg im 24 Bit Format an. Das ist jedes jpg.

Aber - das Tumbnail wird zuerst erstellt (halt nur mit 256 Farben) und dann als .jpg gespeichert - aber das Bild, bzw. die verwendeten Farben werden sich dadurch nicht ändern.

Du kannst z.B. ein gif-Bild, das nur vier Farben benutzt, auch als .jpg speichern. Verwenden wird es dann auch immer noch nur diese vier Farben, auch wenn das Bild 24 Bit Farbinformationen enthält.

Alles klar jetzt?
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 24.08.2002, 16:22   #12
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
Klar, es gibt an, dass das Bild ein jpg im 24 Bit Format an. Das ist jedes jpg.
Logisch, kein Thema. Und was is mit "gezählte Farben: 5801"?
seb ist offline   Mit Zitat antworten
Alt 25.08.2002, 18:40   #13
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Hat sich verzählt?

Sorry, aber Fakt ist:

- ImageCreate() erstellt Bilder mit 256 Farben

- ImageCreateTrueColor() erstellt Bilder mit 24Bit Farben.

Zitat:
ImageCreateTrueColor is used to create an image resource with an unlimited number of colors, which is useful when manipulating JPEG images, for example.

ImageCreate is used to create an image resource with a 256 color palette, sometimes called indexed color
Quelle: PHP.net
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 25.08.2002, 20:18   #14
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Okay, ich hab rumprobiert, größere Thumbs erzeugt, ihre Farbtiefe reduziert, verglichen und auch in der php-Dokumentation nachgesehn.

Ergebnis is folgendes:

- Auch ein anderes Tool (XNView) behauptet, dass die Bilder in jedem getesteten Fall mehrere tausend verschiedene Farben verwenden, je größer das Thumb, desto mehr (verständlicherweise).

- Die Bilder erscheinen für mich farblich perfekt, nix was auf eine gegenüber dem Originalbild so drastisch reduzierte Farbtiefe spricht. Aaaber:

- Reduzierung der Farbtiefe auf 8 Bit ändert rein garnichts, ich seh keinen Unterschied zwischen 24 und 8 Bit.

- In den Kommentaren in der PHP-Doc hab ich an einer Stelle das hier gefunden:

PHP-Code:
In previous versionsImageCreate worked OK for manipulating JPEG imagesBut in experimenting with the Win32 version of PHP 4.0.6which I think relies on the GD 2.0.1 lib betayou have to use ImageCreateTrueColor to get accurate color results with JPEGs
Eine ältere Version verwendet mein Hoster wohl tatsächlich, denn imagecopyresampled (ab 2.0.1) funktioniert nicht, vielleicht is das eine Erklärung - allerdings auch wieder widersprüchlich zu der Tatsache, dass ich beim Reduzieren auf 256 Farben keine Änderung seh.

Obwohl ich nach wie vor find, dass die Bilder nicht nach 256 Farben aussehn und zwei verschiedene Grafiktools unabhängig meine Meinung teilen -

geb ich mich geschlagen, denn der fehlende sichtbare Unterschied zwischen behauptetem true color und umgewandelten 8 Bit spricht klar für dich.
seb ist offline   Mit Zitat antworten
Alt 26.08.2002, 10:29   #15
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Ich weiss nicht, wie die Tumbs bei Dir aussahen. Aber bei manchen bei mir erstellten Tumbnails sah man gravierende Farbunterschiede (nicht bei allen!) - seit ich ImageCreateTrueColor benutze, sind diese Unterschiede komplett weg und die Tumbs sind "farbenfroher".

Vielleicht habe ich auch andere Erfahrungen gemacht, weil auf meinem Server die aktuellste GD-Lib drauf ist und PHP 4.2.2 ...

Benutz doch in Deinem Script einfach eine if-clause a la:

PHP-Code:
                    if (function_exists("imagecreatetruecolor"))
                    {
                          
$thumb imagecreatetruecolor ($x$y);
                      }
                    else
                    {
                        
$thumb imagecreate ($x$y);
                    }
                    if (
function_exists("imagecopyresampled"))
                    {
                        
imagecopyresampled ($thumb$image0000$x$y$imagedata[0], $imagedata[1]);
                      }
                    else
                    {
                        
imagecopyresized ($thumb$image0000$x$y$imagedata[0], $imagedata[1]);
                    } 
Somit erhälst Du, je nach Server und Softwareausstattung, das bestmöglichste Ergebnis einen Thumbnails
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Bilddatenbank mit thumbnail oder nicht? Bilddatenbank mit thumbnail oder nicht?
« links im Text dynamisch gestalten | dyn formular »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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