Как создать Thumbnails с phpThumb и сохранить его в файл?
Я не хочу знать, как создавать эскизы с классом phpThumb, с массивом с путями к файлам уже. Затем сохраните результат каждого изображения по другому пути, но с тем же именем.
Спасибо вам всем;)
РЕДАКТИРОВАТЬ: у меня есть мой код примерно так:
echo "A iniciar gerador de miniaturas para a área de cliente: \n";
include $wincli['files']['phpThumbClass'];
$files = file_list($wincli['dirs']['logos']);
$phpThumb = new phpThumb();
foreach( $files as $file ) {
echo " # A converter o ficheiro '".basename($file)."' : ";
if(is_file($file)){
$phpThumb->setSourceFilename($file);
$phpThumb->setParameter('w', 880);
$phpThumb->setParameter('h', 241);
$phpThumb->setParameter('q', 90);
$phpThumb->setParameter('zc', 1);
$outputFilename = $wincli['dirs']['logosthumbs'].$file;
if($phpThumb->GenerateThumbnail()){
if($phpThumb->RenderToFile($outputFilename)){
echo "OK \n";
}else{
echo "Falhou (Ao guardar no ficheiro)\n";
}
}else{
echo "Falhou (Ao gerar miniatura)\n";
}
}else{
echo "Falhou (Ficheiro inexistente)\n";
}
}
Это отладка:
phpThumb() v1.7.7-200612252156 in file "phpthumb.class.php" on line 216
setSourceFilename(/var/www/virtual/test.com/wincli/logos/001-0.jpg) set $this->sourceFilename to "/var/www/virtual/test.com/wincli/logos/001-0.jpg" in file "phpthumb.class.php" on line 234
file_exists() = 0 in file "phpthumb.class.php" on line 1036
is_executable() = 0 in file "phpthumb.class.php" on line 1037
ImageMagickThumbnailToGD() aborting because cannot find convert in $this->config_imagemagick_path (), and `which convert` returned () in file "phpthumb.class.php" on line 1066
$AvailableImageOutputFormats = array(text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 825
$this->thumbnailFormat set to $this->config_output_format "jpeg" in file "phpthumb.class.php" on line 835
$this->thumbnailQuality set to "90" in file "phpthumb.class.php" on line 852
!$this->config_allow_src_above_docroot therefore setting "/var/www/virtual/test.com/wincli/logos/001-0.jpg" (outside "/var/www/virtual/test.com/htdocs") to null in file "phpthumb.class.php" on line 1001
$this->sourceFilename set to "" in file "phpthumb.class.php" on line 754
phpThumb() v1.7.7-200612252156
"" does not exist in file "phpthumb.class.php" on line 3404
setCacheDirectory() starting with config_cache_directory = "" in file "phpthumb.class.php" on line 859
$this->config_cache_directory () is not a directory in file "phpthumb.class.php" on line 895
SetCacheFilename() failed because $this->config_cache_directory is empty in file "phpthumb.class.php" on line 2808
starting ExtractEXIFgetImageSize() in file "phpthumb.class.php" on line 2665
GetImageSize("") failed in file "phpthumb.class.php" on line 2688
$this->useRawIMoutput=false because "fltr" is set in file "phpthumb.class.php" on line 1151
ImageMagickThumbnailToGD() aborting because $this->sourceFilename is empty in file "phpthumb.class.php" on line 1196
ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 2695
SetOrientationDependantWidthHeight() starting with ""x"" in file "phpthumb.class.php" on line 2644
SetOrientationDependantWidthHeight() setting w="880", h="241" in file "phpthumb.class.php" on line 2660
EXIF thumbnail extraction: (size=0; type=""; 0x0) in file "phpthumb.class.php" on line 2747
starting SourceImageToGD() in file "phpthumb.class.php" on line 3005
$this->useRawIMoutput=false because "fltr" is set in file "phpthumb.class.php" on line 1151
ImageMagickThumbnailToGD() aborting because $this->sourceFilename is empty in file "phpthumb.class.php" on line 1196
Not using EXIF thumbnail data because $this->exif_thumbnail_data is empty in file "phpthumb.class.php" on line 3046
$this->gdimg_source is still empty in file "phpthumb.class.php" on line 3098
ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 3100
phpThumb() v1.7.7-200612252156
Unknown image type identified by "" () in SourceImageToGD()[3210] in file "phpthumb.class.php" on line 3404
SourceImageToGD() failed in file "phpthumb.class.php" on line 312
4 ответа
Решение
$files = array('filename.jpg', 'filename2.jpg');
foreach( $files as $file ) { // here's part 1 of your answer
$phpThumb->setSourceFilename($file);
$phpThumb->setParameter('w', 100);
$outputFilename = "thumbs/".$file;
if ($phpThumb->GenerateThumbnail()) {
if ($phpThumb->RenderToFile($outputFilename)) { // here's part 2 of your answer
// do something on success
} else {
//failed
}
} else {
// failed
}
}
Для получения дополнительной информации см. http://phpthumb.sourceforge.net/index.php?source=demo%2FphpThumb.demo.object.php
У меня были проблемы с сервером Strato, и он работал следующим образом:
$phpThumb->setParameter('config_allow_src_above_docroot', true);
Исправление для ошибки.
echo "A iniciar gerador de miniaturas para a área de cliente: \n";
include $wincli['files']['phpThumbConfig'];
include $wincli['files']['phpThumbClass'];
$files = file_list($wincli['dirs']['logos']);
echo "A gerar novas miniaturas: \n";
foreach( $files as $file ) {
if(
(strtolower(get_file_extension($file))=="jpg") ||
(strtolower(get_file_extension($file))=="jepg") ||
(strtolower(get_file_extension($file))=="bmp") ||
(strtolower(get_file_extension($file))=="png")
){
echo " -> ".basename($file)." : ";
if(is_file($file)){
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($file);
$phpThumb->setParameter('config_output_format', 'jpeg');
$phpThumb->setParameter('config_allow_src_above_docroot', true);
$phpThumb->setParameter('w', 880);
$phpThumb->setParameter('h', 241);
$phpThumb->setParameter('q', 90);
$phpThumb->setParameter('zc', 1);
$phpThumb->setParameter('config_cache_directory', $wincli['dirs']['phpThumbCache']);
$phpThumb->setParameter('config_temp_directory', $wincli['dirs']['phpThumbCache']);
$phpThumb->setParameter('config_cache_disable_warning', true);
$phpThumb->setParameter('config_imagemagick_path', null);
$phpThumb->setParameter('config_prefer_imagemagick', false);
$outputfile = $wincli['dirs']['logosthumbs'].basename($file);
if($phpThumb->GenerateThumbnail()){
if($phpThumb->RenderToFile($outputfile)){
echo "OK \n";
}else{
echo "Falhou (Ao guardar no ficheiro)\n";
}
}else{
echo "Falhou (Ao gerar miniatura)\n";
}
}else{
echo "Falhou (Ficheiro inexistente?)\n";
}
}
}
После обновления до версии: v1.7.21 появляются странные ошибки, например:
Failed:
phpThumb() v1.7.21-202307141720
http://phpthumb.sourceforge.net
Error messages disabled.
edit phpThumb.config.php and (temporarily) set
$PHPTHUMB_CONFIG['disable_debug'] = false;
to view the details of this error
phpThumb() v1.7.21-202307141720 in file "phpthumb.class.php" on line 279
setSourceFilename(/srv/www/site/application/includes/ips/../../../htdocs/files/images/ipad/source_img.png) set $this->sourceFilename to "/srv/www/site/application/includes/ips/../../../htdocs/files/images/ipad/source_img.png" in file "phpthumb.class.php" on line 347
using ImageMagick path from `which convert` (/usr/bin/convert) in file "phpthumb.class.php" on line 1561
Причиной этого сообщения являются ограничения корневого каталога...
просто инициализируйте phpThumb следующим образом:
// create phpThumb object
$phpThumb = new phpThumb();
$phpThumb->setParameter('config_allow_src_above_docroot', true);