Zum Inhalt springen

Farbtiefe von Bildern ungenügend

Erstellt am 7. April 2006 · 2 Antworten · letzte Antwort am 7. April 2006

Tags: Bilder, Frage

McGregor ·

Hallo!

Ich habe ne kleine Extension geschrieben und wandle hochgeladene Bilder um (ich lass sie klein rechnen). Dazu folgenden Ausschnitt meiner Klasse:

	function smallImage($bildname,$params,$alt,$size,$height=0) {
		if (file_exists('uploads/tx_icshop/'.$bildname)) {
			$img["file"] = 'uploads/tx_icshop/'.$bildname;
			$img['file.']["width"] = $size;
			if ($height != 0) $img['file.']["height"] = $height;
			$img["params"] = 'class="'.$this->prefixId.'_image" '.$params;
			$img['altText'] = $alt;
			$img['titleText'] = $alt;
			$out = $this->cObj->IMAGE($img);
		} else {
			$out = " ";
		}
		return $out;
 	}

Dazu verwende ich das cObj IMAGE. So weit so gut. Doch leider werden die Orignal GIF-Dateien mit 256 Farben auf 64 Farben reduziert. Das sieht natürlich bescheiden aus.
Ich verwende dabei Transparente GIFs und ImageMagick 6.x, welches bei mir bis jetzt sehr gut funktioniert hat.

Meine Versuche mit

$img['params']["fx"] = '-colors 256'

oder

$img['params']["fx"] = '"-colors 256"'

oder

$img["params"] = 'class="'.$this->prefixId.'_image" '.$params.' -colors 256';

schlugen fehl, obwohl solche Angaben laut TSREF erlaubt sind.
Wie kann ich nun angeben, dass die Bilder weiterhin ihren Farbraum behalten?

Grüße
McGregor

P.S. Hier noch der Link zu TSREF
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Imgresource.html

steffenk ·

such mal hier im Forum, das lässt sich anscheinend nur mit einem Eingriff ins Core bewerkstelligen.
(Ich weiss nicht wie das in der 4.0 ist)

McGregor ·

Hi!

Deine Antwort war nicht sehr erschöpfend.
Ich habe dann die Suche NOCHMALS bedient und folgendes gefunden:

	var $cmds = Array (
		'jpg' => '',
		'jpeg' => '',
		'gif' => ' -colors 64',
		'png' => ' -colors 64'
	);

muss auch für meinen Fall in

	var $cmds = Array (
		'jpg' => '',
		'jpeg' => '',
		'gif' => '',
		'png' => ''
	);

abgeändert werden.
Zu finden ist dieser Code in folgender Datei
typo3/t3lib/class.t3lib_stdgraphics.php in Zeile 160

Grüße
McGregor