"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

thumbnails mit gd, nicht die richtigen Farbe ?

Snoop 24.02.2003 - 18:27 535 8
Posts

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
ich versuche gerade ein thumbnail script zu schreiben, hab aber leider ein paar probleme damit..
folgendes: ich kann inzwischen (durch ein tutorial) schon mal ein thumbnail erstellen, allerdings werden die farben nicht korrekt übernommen...
das script schaut folgendermaßen aus
Code: PHP
$PicPathIn=""; 
  $PicPathOut="../access/"; 
  // Orginalbild 
  $bild="Bild12.jpg"; 
  // Bilddaten feststellen 
  $size=getimagesize("$bild"); 
  $breite=$size[0]; 
  $hoehe=$size[1]; 
  $neueBreite=100; 
  $neueHoehe=100;

  if($size[2]==1) { 
  // GIF 
  $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild"); 
  $neuesBild=ImageCreate($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe); 
  ImageGIF($neuesBild,"$PicPathOut"."TN"."$bild"); 
  } 

  if($size[2]==2) { 
  // JPG 
  $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild"); 
  $neuesBild=ImageCreate($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe); 
  ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild"); 
  } 

  if($size[2]==3) { 
  // PNG 
  $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild"); 
  $neuesBild=ImageCreate($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe); 
  ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild"); 
  } 

  echo "Altes Bild: <BR>"; 
  echo "<IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\">
<BR><BR>"; 
  echo "Neues Bild:<BR>"; 
  $Tumbnail=$PicPathOut."TN".$bild; 
  echo "<IMG SRC=\"$Tumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">"; 

büdde helfts ma :) thx im vorraus....

so schaut dann das bild leider aus :(click to enlarge
und so sollte es aussehen :(click to enlarge
Bearbeitet von Snoop am 24.02.2003, 18:30

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
sieht nach einem problem mit den colortable/palette aus; versuche imagecreatetruecolor(x_size,y_size) statt imagecreate(), wenn du mit jpeg arbeitest.
Bearbeitet von atrox am 24.02.2003, 19:07

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
komisch das selbe problem hatte ich mit gd2 auch obwohl das selbe beispiel unter der alten, und imho besseren, gd1 super funktionieren sollte

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
yeah geht! thx an atrox :)

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1088
und noch eine frage, wie kann ich gif bilder resizen ???? weil ImageCreateFromGIF(); habens ja rausgenommen wegen rechtlichen Geschichten oder ??? gibts da noch eine andere möglichkeit ?

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
nein GIF ist leider komplett kommerziell und du müsstest normalerweise für jedes GIF Bild das du auf einer Homepage verwendest bezahlen da eine Firma alle Copyrights besitzt.

Deshalb gibt es leider keine Möglichkeit mehr GIFs zu resizen bzw. wird es auch nicht geben.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ich finde da hat der autor überreagiert, weil das lesen von gif ja weiter lizenzfrei geblieben ist. wie auch immer - ich glaub 2004 läuft das lzw-patent für unisys ab, dann sollte auch das schreiben kein problem mehr sein. (ob der autor gif dann wieder freiwillig inkludiert?)
es gibt gif-read-patches für gd und in php 4.3.0 ist auch so eines integriert.
ansonsten kannst du unter unix versuchen mit kommandozeilen-utilities (wie zb giftopnm und pnmtopng das gif in ein png zu überführen)

/edit: da laut fachzeitschriften (zb computerwelt/austria) das lzw patent in .at sowieso nicht gültig ist, hier der link zum patch: http://www.rime.com.au/gd/

/update: (patent-dauer)
Zitat
http://cloanto.com/users/mcb/19950127giflzw.html
The LZW patent, as well as its international counterparts, and similar patents filed by others, are expected to remain valid for at least 20 years from the original filing date, i.e. until June 19, 2003.
Bearbeitet von atrox am 24.02.2003, 20:20

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von atrox
/update: (patent-dauer)
goil :D

noch was bezügl. gif: es gab die bestrebungen von compuserve (ich glaub zumindest dass die des sind :rolleyes: ) für jedes gif-bild lizenzgebühren zahlen zu müssen, das hat aber nicht so gut geklappt, also mussten sie sich damit zufrieden geben nur für jede software, die gifs bearbeiten/erstellen kann beim autor gebühren zu verlangen -> könnte gd gifs bearbeiten/erstellen (darunter fällt auch das resizen) dann müsste der programmierer dafür blechen - auch wenns open source is... :rolleyes:

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
na, es war unisys.
compuserve spezifizierte GIF mit einem vermeintlich lizenzfreien kompressionsalgorithmus (LZW) der in einer IEEE publikation erschienen war und dort sehr ausführlich beschrieben worden ist. die autoren hatten allerdings vergessen zu erwähnen (oder wußten es damals noch nicht), daß ihr arbeitgeber unisys das ding zum patent angemeldet hat.
ein jahrzehnt war unisys offiziell gar nicht bekannt, daß GIF "ihren" algorithmus (der aber zb auch bei TIFF und anderen anwednungen verwendet wird) benutzt. dann behaupteten sie, GIF sei von ihrem patent nicht betroffen, .. schließlich kassierten sie dann doch.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz