我正在使用Imagick(6.7.7-4和模块版本3.2.0RC)。
我正在尝试创建一个图像并在浏览器中动态呈现它,例如,通过HTML
<img src='image_generator.php?QUERY_PARAMS_TO_DETERMINE_TEXT'>
这是image_generator.php内容:
/* Create text */
$draw->setFillColor('white');
$draw->setFontSize( 19 );
$draw->setGravity(Imagick::GRAVITY_CENTER);
$draw->annotation(0, -50, 'points');
$image->drawImage($draw);
/* Give image a format */
$image->setImageFormat('tiff'); // png works
/* Output the image with headers */
header('Content-type: image/tiff'); // png works
echo $image;
当我在php中打开image_generator.php并且图像格式设置为TIFF时,它会自动下载PHP文件,并且不会显示PNG情况下的图像。
答案 0 :(得分:0)
如果将下载文件的扩展名更改为“ .tif”会得到正确的图像,则问题是浏览器正在使用页面名称作为文件名。当服务器端脚本或小程序以编程方式提供图像(或其他要下载的文件)时,这种情况并不少见。
使用以下标头更改“附件”名称。
/* Give image a format */
$image->setImageFormat('tiff'); // png works
/* Output the image with headers */
// This line will change the download name
header('Content-Disposition: attachment; filename="[NAME.TIFF]");
// This line will set the Mime Type
header('Content-type: image/tiff');
echo $image;
就是这样。
我知道我参加这个聚会已经晚了几年,但是,由于各种各样的人都遇到了这个问题,并认为这是错误的代码或配置,或者只是需要知道如何重命名他们的下载,我想我会为此答疑遇到它的其他人。