Страница 1 из 1

Imagemagick - Темные картинки

Добавлено: 06 ноя 2012, 17:39
surfman
Перешел с другого сервера на Open-server. Там небыло imagemagick, поэтому устанавливал отдельно.
На сборке Open-server картинки после ресайза почему то получаются слишком темными, какую настройку и где нужно изменить?
Настройки конвертации в CMS не менялись, так как просто востановил бекап сайта.

Добавлено: 06 ноя 2012, 17:48
Максим
Ну тут я вам ничего не подскажу. Это надо полный код видеть который обрабатывает картинку, а так же посмотреть ваши картинки нормальную и темную, как пример. Если сможете показать php код и картинки, тогда может чего и прояснится. В Open Server используются файлы ImageMagick 6.7.9, может другие версии по другому обрабатывали графику у вас, не знаю.

Добавлено: 08 ноя 2012, 23:24
surfman
Про код я даже не знаю что показать. Используется CMS TYPO3. На хостинге все норма, на старом сервере я качал отдельно ImageMagick-6.6.4-9-Q16-windows-dll.exe и устанавливал.

И вроде бы все, сделал бекап на старом, а на новом такое:

Добавлено: 08 ноя 2012, 23:28
Максим
Можно картинку в оригинале? На что касается кода , то без кода я врятли вам чем то помогу, нужен код, возможно дело в нем. В разных версиях Imagick возможно разные настройки по умолчанию.

Добавлено: 09 ноя 2012, 16:59
surfman
Вот оригинал.
Я еще попробую узнать на форуме поддержки Typo3.

Добавлено: 09 ноя 2012, 17:22
Максим
Протестировал вашу фотографию, превью создаются как положено, вот результат на 200 пикселей (файл приложен к сообщению). Так что проблема в вашей CMS, думаю обсуждать больше нечего.

Вот код:
<?php
// Set image file
$imagePath = dirname(__FILE__).'/Slingshot_Rally_2012.jpg';

// these are treated as maximums and aspect ratio is maintained
$thumbnailWidth = 200;
$thumbnailHeight = 200;

// load the original image
$image = new Imagick($imagePath);

// get the original dimensions
$width = $image->getImageWidth();
$height = $image->getImageHeight();

// strip colour profiles
$image->stripImage();

// set colorspace
$image->setImageColorspace(Imagick::COLORSPACE_SRGB);

// set image quality
$image->setImageCompressionQuality(96);
 
// determine which dimension to fit to
$fitWidth = ($thumbnailWidth / $width) < ($thumbnailHeight / $height);

// create thumbnail
$image->thumbnailImage(
  $fitWidth ? $thumbnailWidth : 0,
  $fitWidth ? 0 : $thumbnailHeight
);

// trim image
$image->trimImage(0);

// small sharpen for best quality
$image->sharpenImage(0, 0.5);

// generate a thumbnail filename
$imagePathParts = pathinfo($imagePath);
$thumbnailPath =
  $imagePathParts['dirname'].'/'.
  $imagePathParts['filename'].'_'.
  $thumbnailWidth.'x'.$thumbnailHeight.
  '.jpg';

// save thumbnail and free up memory
$image->writeImage($thumbnailPath);
$image->clear();
$image->destroy();
?>