php - cmyk 到 rgb 使用 php

标签 php image rgb cmyk

我正在使用以下脚本将图像保存在文件夹中,但有一张图像显示此消息“图像无法显示,因为它包含错误”。

我认为问题出在图像上的 cmyk 和 rgb 上,但是在网上搜索使用 php 将 cmyk 转换为 rgb 的方法时,我找不到如何执行此操作的示例。

这是其中一个例子:http://offshootinc.com/blog/2008/10/24/using-the-imagick-class-to-convert-a-cmyk-jpeg-to-rgb/但我不明白如何在我的案例中使用它。

图片的链接类似于:www.example.com/attachment?id=2290

脚本如下:

<?php 
$image = 'http://www.dealrush.ie/attachment?id=2290';
$name = 'somename';
$alt = 'somealt';
$saveimage = file_get_contents($image);
file_put_contents("/usr/local/pem/vhosts/155030/webspace/httpdocs/img/$name.jpg", $saveimage);?>

稍后在某些页面中我将使用类似这样的东西来显示图像。 <code><?php echo $alt?></code>

任何帮助转换这些图像将不胜感激 谢谢 丹尼尔

最佳答案

我怀疑色彩空间(CMYK 或 RGB)是您的问题。虽然网上应该大家都在用RGB图片,但浏览器还是会毫无怨言的显示CMYK图片。

要将图像从 CMYK 转换为 RGB,您需要安装图像处理程序,例如 ImageMagick、GraphicsMagick 或 ExactImage。这些中的任何一个都可以做你想做的,但必须由服务器管理员安装。如果幸运的话,可能已经安装了 ImageMagick,在这种情况下,您可以这样做:

$image= '/path/to/your/file.jpg';
$i = new Imagick($image);
$i->setImageColorspace(Imagick::COLORSPACE_SRGB);
$i->writeImage($image);
$i->destroy();

请注意,ImageMagick 是最强大的,ExactImage 是最快的,而 GraphicsMagick 是 ImageMagick 的一个分支,它速度更快但功能稍弱并且有一些错误。只有 ImageMagick 可以从 PHP 使用,其他必须使用 exec 函数执行,尽管这不一定是坏事,因为它们可能比 PHP 更好地处理自己的内存和清理。

关于php - cmyk 到 rgb 使用 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675336/

相关文章:

php - 使用 CSS 定位具有 ID 的表内的特定类 - 更改 ROW 背景

CSS 设计和图像

java - 将图像导入 Eclipse

Android camera2 jpeg帧率

ffmpeg - 从 AVFrame 复制一个矩形区域 - ffmpeg

javascript - 如何将颜色 'Clear'设置为RGB或HEX?

flash - 基于文件加载百分比的 RGB 渐变

javascript - jQuery Ajax : VM845:1 Uncaught SyntaxError: Unexpected token <

php - Num_Rows 中未选择任何数据库

php - 使用 Livewire 仅选中一个复选框并取消选中其他复选框