Zufallsbild - Bildqualität bestimmen - wie?

Gesperrt
llaron
Beiträge: 133
Registriert: Mi 14. Jul 2004, 12:54
Kontaktdaten:

Zufallsbild - Bildqualität bestimmen - wie?

Beitrag von llaron »

Hallo,

ich nutze folgendes Script zum Anzeigen von Zufallsbildern:

Code: Alles auswählen

<?php
$db = new DB_Contenido;
$sql = "SELECT upl.filename, upl.dirname
           FROM ".$cfg["tab"]["upl"]." AS upl       
           WHERE upl.dirname = 'bilder/Zitate/'
           ORDER BY RAND() LIMIT 1";
$db->query($sql);
$db->next_record();

$zufallsbild = capiImgScale($cfgClient['upl'].$db->f("dirname").$db->f("filename"), 200, 600, false, false, 10, false);
echo '<img src="'.$zufallsbild.'" alt="Theta Healing und Reiki Zitate">';
?> 
Allerdings wird die Qualität der generierten JPG's übel! Wie kann ich die Qualität mit angeben, bspw. 80%?

Helfen würde es mich auch schon, wenn anstatt ein jpg ein gif generiert werden würde!

Thx im Voraus
Nico
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

als bei einer 4.6.23 gibt für capiImgScale noch einen quality parameter..

Code: Alles auswählen

/**
 * capiImgScale: Scales (or crops) an image.
 * If scaling, the aspect ratio is maintained.
 *
 * This function chooses the best method to scale, depending on
 * the system environment and/or the parameters.
 *
 * Returns the path to the scaled temporary image.
 *
 * Note that this function does some very poor caching;
 * it calculates an md5 hash out of the image plus the
 * maximum X and Y sizes, and uses that as the file name.
 * If the file is older than 10 minutes, regenerate it.
 *
 * @param string 	$img		The path to the image (relative to the frontend)
 * @param int		$maxX 		The maximum size in x-direction
 * @param int		$maxY		The maximum size in y-direction
 * @param boolean 	$crop 		If true, the image is cropped and not scaled.
 * @param boolean 	$expand 	If true, the image is expanded (e.g. really scaled).
 * 								If false, the image will only be made smaller. 
 * @param int		$cacheTime	The number of minutes to cache the image, use 0 for unlimited
 * @param boolean 	$wantHQ 	If true, try to force high quality mode
 * @param int		$quality	The quality of the output file
 * @param boolean	$keepType	If true and a png file is source, output file is also png
 *
 * @return string 	!!!URL!!! to the resulting image (http://...)
 *
 * @return string Path to the resulting image
 */
function capiImgScale ($img, $maxX, $maxY, $crop = false, $expand = false, 
					   $cacheTime = 10, $wantHQ = false, $quality = 75, $keepType = false)
*** make your own tools (wishlist :: thx)
joe_ma
Beiträge: 101
Registriert: Sa 2. Jun 2007, 07:55
Kontaktdaten:

Beitrag von joe_ma »

Ich bin auch grad bei diesem Thema. Die Bilder, die ich per upload auf den Server gelegt habe, haben bereits die richtige Grösse und Qualität. Wenn ich jetzt will, dass das Modul die Qualität nicht verändert, bzw. überhaupt nichts am Bild verschlechtert, kann ich dann die Zeile im Modul wie folgt ergänzen?

Code: Alles auswählen

#Scale image
$image = capiImgScale($img_path_fs, $img_width, $img_height, false, false, 10, true, 100, false);
Bei den Default settings habe ich bereits die richtigen Dimensionen der Bilder eingegeben.
Gruss

Jörg Matter
Gesperrt