WinFuture-Forum.de: Thumbnails Mit Php - Zu Geringe Qualität - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Thumbnails Mit Php - Zu Geringe Qualität


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Juli 2008 - 11:20

Hey Leute, ich würde gerne Thumbnails erstellen, doch bei mir kommt nicht das erwünschte Ergebnis heraus:
Orginal
Ergebnis
Eingefügtes Bild

Ich kann jedes Bild nehemn was ich möchte, bei manchen wird auch nur eine Graustufe ausgegeben.

Ich nutze diesen Code zum erstellen meiner Thumbnails:
$PicPathIn="upload/"; 
				 $PicPathOut="upload/thumb/"; 
				 
				 $bild=$_FILES['file']['name']; 
				 
				 $size=getimagesize("$PicPathIn"."$bild"); 
				 $breite=$size[0]; 
				 $hoehe=$size[1]; 
				 $neueBreite=200; 
				 $neueHoehe=intval($hoehe*$neueBreite/$breite); 
				 
				 if($size[2]==1){ 
				 
				 $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){ 
				 $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){ 
				 
				 $altesBild=imagecreatefrompng("$PicPathIn"."$bild"); 
				 $neuesBild=imagecreate($neueBreite,$neueHoehe); 
				 imagecopyresized($neuesBild, $altesBild,0,0,0,0, $neueBreite, $neueHoehe, $breite, $hoehe); 
				 imagepng($neuesBild,"$PicPathOut"."TN"."$bild");


Ich nehme gerne auch bessere Codes an. Sie sollten allerdings dynamisch jpg png und gif unterstützen.

Gruß,
Toasterfraktion
0

Anzeige



#2 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 824
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 13. Juli 2008 - 12:21

Eingefügtes Bild

Habe ich mit diesem Script erzeugt.



Eingefügtes Bild


Habe ich mit diesem Script erzeugt.

Dieser Beitrag wurde von h-a-n-n-e-s bearbeitet: 13. Juli 2008 - 12:27

Eingefügtes Bild
0

#3 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Juli 2008 - 12:42

Hm okay, habe den Fehler gefunden.
Anstatt imagecreate() habe ich imagecreatetruecolor() genommen, das mit den farben passt nun!

Aber ich habe einen noch viel komischeren Fehler den ich mir absolut nicht erklären kann!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>MyD - Fotos</title>
<link rel="stylesheet" href="pics_style.css"  />
</head>
<body>
<img src="../upload/thumb/TN1214461501XXSaGXXPre.jpg" width="150" height="99" /> // auch verzerrt
<?php 
include"../config.php";

$abfrage = "SELECT * FROM diary_text WHERE id=".$_GET['id']." LIMIT 1";
$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_object($ergebnis)){
	echo "<div class='main'><div class='tag'>Tag: ".$row->tag."</div>";
	$ergebnis = mysql_query("SELECT pics FROM diary_text WHERE id=".$_GET['id']." LIMIT 1");
	
	while($row = mysql_fetch_object($ergebnis)){
		$pics=explode("\n",$row->pics);
		
		while (list($key,$value) = each($pics)) {
		echo "<img src='../upload/thumb/TN".$value."'>";
			}
		echo"</div>";
	}	

}

?>
</body>
</html>


Die ganzen Bilder die ich in diesem Script ausgebe werden total verzerrt dargestellt.
Ich habe vor dem PHP code mal ein Bild eingefügt, auch diese wird verzerrt angezeigt!
Wenn ich die Bilder so <img src="../upload/thumb/TN1214461501XXSaGXXPre.jpg" width="150" height="99" /> in eine html einfüge werden sie sauber angezeigt.

Habe ich was falch gemacht in meinem Script?
Hier mal das Bild an dem ma es sehen kann!
Eingefügtes Bild



Woran kann das liegen?
0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. Juli 2008 - 15:50

Also 150x99px ist ein sehr komisches Format (Verhältnis ~1,5). Normalerweise habe Bilder doch ein Verhältnis von 1,3p3. Prüfe doch einfach mal das Seitenverhältnis der Bilder. Und dann mache die Bilder doch als Thumb genau so groß, wie du sie später anzeigen willst.

Gruß,
Stefan
0

#5 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 13. Juli 2008 - 16:07

Beitrag anzeigenZitat (Diewie: 13.07.2008, 16:50)

Also 150x99px ist ein sehr komisches Format (Verhältnis ~1,5). Normalerweise habe Bilder doch ein Verhältnis von 1,3p3. Prüfe doch einfach mal das Seitenverhältnis der Bilder. Und dann mache die Bilder doch als Thumb genau so groß, wie du sie später anzeigen willst.

Gruß,
Stefan


Das ist doch kein komisches Format. 3:2 ist doch ganz normal und beim Umrechnen kann bei krummen Zahlen durch Abrunden aus 150x100 schonmal 150x99 werden.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#6 _USA_

  • Gruppe: Gäste

geschrieben 13. Juli 2008 - 16:11

deleted

Dieser Beitrag wurde von USA bearbeitet: 23. Februar 2010 - 23:01

0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Juli 2008 - 17:44

@ USA
genau so soll aussehen! ich schreibe dir mal ne PM!
wäre cool wenn du mir helfen könntest!
0

#8 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. Juli 2008 - 19:03

Beitrag anzeigenZitat (Gitarremann: 13.07.2008, 17:07)

Das ist doch kein komisches Format. 3:2 ist doch ganz normal und beim Umrechnen kann bei krummen Zahlen durch Abrunden aus 150x100 schonmal 150x99 werden.


Stimmt es scheint schon mehr Digitalkameras geben, die 3:2 unterstützen. Ich sollte doch mal wieder eine neue Digitalkamera kaufen :)

Zum Skript: Da du ja mehr Wert auf Qualität statt auf Performance legst, solltest du statt imagecopyresized() besser imagecopyresampled() verwenden. Und vielleicht solltest du die Qualität bei imagejpeg() auch leicht nach oben stellen. Der Standard liegt bei 75 (auf Skala von 0-100).

Gruß,
Stefan
0

#9 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 824
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 13. Juli 2008 - 19:40

Danke Diewie!

Mit deinen Tipps bekomme ich auch so ein gutes Thumb hin.
Eingefügtes Bild
Eingefügtes Bild
0

#10 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 13. Juli 2008 - 21:40

danke Diewie, habe dieses Script als Grundlage gehabt, und mit imagecopyresampled() und imagecreatetruecolor() passt nun alles super!!!

EDIT:

Zitat

Index 2 ist eine der IMAGETYPE_XXX-Konstanten entsprechend des Typs der Grafik.


@Diewie
Wo finde ich denn die IMAGETYPE_XXX-Konstanten?
Sind die soweit richtig?

  • GIF
  • JPG
  • PNG
  • SWF
  • PSD
  • BMP
  • TIFF(intel byte order)
  • TIFF(motorola byte order)
  • JPC
  • JP2
  • JPX
  • JB2
  • SWC
  • IFF
  • WBMP
  • XBM
Warum sagt er denn nun bei diesem Bild dass es kein richtiges wbmp Vormat hat?
Eingefügtes Bild
MD5hash= 7559177886F28B2E3BD6C08C9BE76DDF

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 13. Juli 2008 - 22:03

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0