mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 17:21 Benutzername: Passwort: Auto-Login

Thema: PHP-Thumbnails größer, bzw. mit Zoom vom 27.07.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP-Thumbnails größer, bzw. mit Zoom
Autor Nachricht
sYCO
Threadersteller

Dabei seit: 25.11.2005
Ort: -
Alter: 47
Geschlecht: Männlich
Verfasst Di 27.07.2010 09:48
Titel

PHP-Thumbnails größer, bzw. mit Zoom

Antworten mit Zitat Zum Seitenanfang

hi mgi-gemeinde,

ich benutze ein galerienskript von niklas, was er auch an coder weitergibt (siehe kommentare), da ich schlichtweg keine/kaum ahnung von php habe.

im unteren code eben gibt es diese drei großen bausteine und ich vermute, der mittlere teil ist der, der die thumbnails aus bildern generiert.

bei einem aufruf aus einer htm-datei mit

(<?
include("./Gallery.php");
Gallery("./images/", 5, 80, 80);
?>

werden eben die thumbnails generiert/angezeigt. soweit klappt alles hervorragend. ebenso auch der zufällig ausgewählte bereich des thumbnails sieht oft toll aus, aber eben nicht immer.

das problem ist nun, dass ich gern etwas mehr "zoom" vom bild hätte, sozusagen. also, im moment wird ein 80 x 80 pixel großes thumbnail aus einer 1 mb großen datei erstellt. da kann es manchmal sein, dass man einfach nur ein schwarzes thumbnail erhält, da es eine große dunkle fläche im foto gab (himmel, ...).

ich hätte also gern, dass er nicht einfach nur 80 x 80 pixel aus dem bild schneidet, sondern eben etwas mehr aus dem bild "rauszoomt" und dann sein 80 x 80 pixel großes thumbnail schneidet/kreiert. so sieht man mehr vom bild und hat auch auf dem thumbnail eine größere ahnung davon, was man nun eigtl groß klicken wird.

ich hoffe, ich habe das verständnisvoll erklärt. auf dem thumbnail soll man einfach mehr vom bild sehen, ohne natürlich die thumbnail-größe zu ändern.

wäre schön, wenn es dafür eine lösung gibt. danke euch im voraus.

php:
Code:
// Output array : {image resource, image width, image height}
function getImageResource($imageFile) {

   // Get image info
   $imageFileInfo = getimagesize($imageFile);
   $dataArray[1] = $imageFileInfo[0];
   $dataArray[2] = $imageFileInfo[1];

   // Create a image resource
   if ($imageFileInfo[2] == 1) { $imageFileResource = imagecreatefromgif($imageFile); }
   if ($imageFileInfo[2] == 2) { $imageFileResource = imagecreatefromjpeg($imageFile); }
   if ($imageFileInfo[2] == 3) { $imageFileResource = imagecreatefrompng($imageFile); }
   $dataArray[0] = $imageFileResource;
   
   return $dataArray;
}



// Creates a jpeg image sized as you want focusing randomly at a detail of the reference image
function imageDetailExtract($referenceImage, $thumbnail, $thumbnailWidth, $thumbnailHeight, $thumbnailJpegQuality=70) {

   $getImageResource = getImageResource($referenceImage);
   
   // Method to display a image detail
   // Coders : problems with little images (To get rid of it, set those two variables to 0)
   // Coders : could be also enhanced so as to see more details
   $Xposition = round(rand(0, ($getImageResource[1]-$thumbnailWidth)));
   $Yposition = round(rand(0, ($getImageResource[2]-$thumbnailHeight)));

   // Create the detail image
   $thumbnailResource = imagecreatetruecolor($thumbnailWidth,$thumbnailHeight);
   imagecopy($thumbnailResource, $getImageResource[0], 0, 0, $Xposition, $Yposition, $getImageResource[1], $getImageResource[2]);
   imagejpeg($thumbnailResource, $thumbnail, $thumbnailJpegQuality);
   
   // Destroy image resources
   imagedestroy($getImageResource[0]);
   imagedestroy($thumbnailResource);
}



// Resizes the given image outputting a jpeg image
function resizeImage($referenceImage, $thumbnail, $maxWidth, $maxHeight, $thumbnailJpegQuality=70) {
   
   $getImageResource = getImageResource($referenceImage);
   
   // Recompute size for fitting (to be validated)
   if( $getImageResource[1] > $getImageResource[2]) { $maxHeight = round(($getImageResource[2]/$getImageResource[1])*$maxWidth); }
   else { $maxWidth = round(($getImageResource[1]/$getImageResource[2])*$maxHeight); }

   // Create resized image
   $thumbnailResource = imagecreatetruecolor($maxWidth,$maxHeight);
   imagecopyresized($thumbnailResource, $getImageResource[0], 0, 0, 0, 0, $maxWidth, $maxHeight, $getImageResource[1], $getImageResource[2]);
   imagejpeg($thumbnailResource, $thumbnail, $thumbnailJpegQuality);
   
   // Destroy image resources
   imagedestroy($getImageResource[0]);
   imagedestroy($thumbnailResource);
}
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 27.07.2010 12:45
Titel

Antworten mit Zitat Zum Seitenanfang

Hast Du Dir denn bereits Gedanken darüber gemacht, unter welchen Bedingungen der jeweilige Bildausschnitt gewählt wird, ohne dass das Ursprungsmotiv verzerrt wird?
  View user's profile Private Nachricht senden
Anzeige
Anzeige
sYCO
Threadersteller

Dabei seit: 25.11.2005
Ort: -
Alter: 47
Geschlecht: Männlich
Verfasst Di 27.07.2010 14:23
Titel

Antworten mit Zitat Zum Seitenanfang

hi,

danke erst einmal für eine reaktion. also, das skript ist ein fertiges galerienskript. insofern habe ich mir keine gedanken zu bedingungen der verzerrung gemacht.

im moment nimmt das skript wahllos eine 80 x 80 pixel (größe je nach wunsch) große fläche von dem bild auf. ohne verzerrung oder nichts. bislang fand ich das gut, aber bei großen bildern kann das oft unschön werden, da man langweilige thumbnails erhält.

insofern wäre es toll, wenn man den code ändern könnte, so dass es wieder eine zufällige fläche vom bild nimmt, dieses mal aber etwas weiter herausgezoomt, so dass man mehr vom bild sieht und das wieder als 80 x 80 pixel großes thumbnail generiert. das schrieb ich aber schon oben.

ohne verzerrung oder sonstigem und muss auch nicht das komplette bild sein.

ich habe irgendwo etwas von autocut und cut gelesen, mit denen das eventuell funktionieren könnte, aber wie gesagt, ich habe keine erfahrung in php.

ich habe nur gehofft, dass man den mittleren code-block leicht ändern kann, so dass das skript weiterhin funktioniert und einfach nur mehr details/eine größere fläche eines bildes im thumbnail zu finden sind.

vorab nochmals danke, falls mir jemand dabei helfen/das ändern kann.
  View user's profile Private Nachricht senden
 
Ähnliche Themen PHP Thumbnails per FTP speichern?
Thumbnails mit Dateiinformationen erstellen
[Hilfe] Thumbnails erstellen
Einfache Bildergallerie (mit Thumbnails)
[PHP] Advanced-Thumbnails erstellen?
Hover Effekt bei Thumbnails
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.