- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我制作了一个工具,人们可以在其中上传照片并对其进行修改,包括去饱和度,从而生成灰度图像。我使用 PHP 的 GD 库生成最终图像。
当打印这些图像时,颜色看起来不对,所以我使用 Image Magick 添加了一个颜色配置文件。
除了已灰度化的图像外,这非常有效。添加了颜色配置文件,但是当我在 Photoshop 中打开图像时,它显示“无法使用嵌入式 ICC 配置文件,因为 ICC 配置文件无效。忽略配置文件”。在 Photoshop 中,图像设置为灰度而不是 RGB,因此附加的 RGB 配置文件是错误的。我需要它是 RGB。
我正在使用以下代码添加所有可能的信息,以尝试使图像变为 RGB:
<?php
$i = new Imagick();
$i->readimage('image.jpg');
$i->setimagetype(Imagick::IMGTYPE_TRUECOLOR);
$i->setimagecolorspace(Imagick::COLORSPACE_RGB);
$i->profileimage('icc', file_get_contents('AdobeRGB1998.icc'));
$i->writeimage($d);
$i->destroy();
?>
有谁知道如何成功将图像设置为 RGB 并附加配置文件?
我确实尝试了“setImageProfile”和“profileImage”的不同方法和组合,也尝试了色彩空间和图像类型,但结果总是一样。
最佳答案
@a34z 在评论中说:
"Somehow I must let PS know it is an RGB image with only grey pixels in it or something like that."
假设 RGB 图像甚至可以包含这样的“灰色”像素是一个根本错误!
RGB 图像的像素总是由 3 种颜色混合而成:R ed + G reen + B 卢。这些是可用的 3 个 channel ,仅此而已。 RGB 中没有灰色 channel 这样的东西。
让 RGB 图像在我们眼中看起来灰色的原因是 3 个数字 channel 值中的每一个都相等或不严格地说,至少“足够相似”。当然,也有软件可以分析3个 channel 的颜色值,告诉你哪些像素是“灰色”的。 ImageMagick 的直方图输出会很高兴地告诉您您会说出哪些灰色阴影,并为这些灰色使用不同的名称。但是不要被那个颜色名称所迷惑:像素仍将由具有相同(或非常相似)强度的 3 种颜色组成,并且 ImageMagick 也会报告这些值。
如果你真的需要一个纯灰度图像(只使用一个灰度 channel ,而不是三个),那么你必须将它转换成这样的图像类型。
这两个图像可能看起来仍然相同(如果转换正确完成,如果您的显示器经过校准,并且如果您不是红绿盲)——但它们的内部文件结构不同。
RGB 图像需要处理 RGB(如果有)的 ICC 配置文件,例如 sRGB。对于灰度,您不能使用 sRGB,您可能需要使用 DeviceGray 或其他东西...
关于PHP Imagemagick 将灰度转换为 RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189787/
使用 ImageMagick 我想绘制一个相对于图像宽度的图元 这对我不起作用 mogrify -stroke white -fill white -draw "rectangle 100,100 %
对于一个项目,我试图创建图像的透视失真以匹配 DVD 盒正面模板。所以我想使用 ImageMagick (CLI) 自动执行此操作,但我很难理解此转换的数学方面。 convert \ -verbo
我遵循的是这个示例http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick,这正是我要对图像执行的操作,除了背景残留物(即白色边框)
我将.psd转换为一个文件夹内的.png文件。如何在具有不同扩展名的文件夹中保持每个文件的名称相同? 例如,我输入文件夹图像,然后从终端执行 $ convert *.psd *.png 但是它给.pn
我正在使用以下 ImageMagick 脚本(带有用于 PHP 的 Imagick)来生成字体图像。这个脚本用大约 0.1 秒来生成一个大约 30 个字符的 48 大小的图像。目标速度大约是 0.01
我正在使用以下 ImageMagick 脚本(带有用于 PHP 的 Imagick)来生成字体图像。这个脚本用大约 0.1 秒来生成一个大约 30 个字符的 48 大小的图像。目标速度大约是 0.01
我遇到了一个 paper它使用由 ImageMagick convert 命令生成的合成手写数据,使用许多不同的手写字体 ( Example images from paper )。 他们已经用他们的
我有一张图片。我需要从图像中裁剪矩形区域。该矩形区域由黑色边框标识。矩形里面是我需要的。是否可以在 imagemagick 中裁剪黑色边框矩形区域?我知道可以通过提供矩形区域的偏移量(-crop Wx
我有一堆图片是桌面墙纸,但尺寸不同。对于我的示例,我将使用分辨率 1920x1080。如何缩放图像以便: 对于宽度和高度小于我的屏幕的图像,图像居中然后按比例放大,直到两者中较小的达到 1920 或
我必须处理大量图像,并且正在寻找检测边框颜色的方法。例如,拍摄这张图片: 是否可以通过某种方式确定图像具有白色背景?解决方法是提取 1px 的边框并检查提取的边框的颜色是否同样为白色。但我认为 Ima
我正在使用 PowerShell 脚本将 Unicode 字符批量转换为 PNG 文件。参见 http://pastebin.com/aGJzk4Hh . 我发现要转换 " 字符,必须使用指定标签:\
目前我正在尝试转换为 HEIF,但唯一与 HEIF 相关的选项是 heic:preserve-orientation(在 CLI 选项 define 中)。我如何为 HEIF 和其他格式使用其他特定于
正如您在答案 “Diff” an image using ImageMagick 中看到的那样,“delta”图像以某种方式变亮了: 如何使用 ImageMagick 使图像变亮? 最佳答案 我假设您
我正在使用 ImageMagick 的 convert 来调整一些 .png 文件的大小,问题是 convert 似乎正在向 .png 写入一些额外的信息: EXtdate:create 2012-1
此 blog post 图像中使用的边框阴影效果似乎嵌入在图像本身(不是 css3)中。如何在 imagemagick 中创建它? 编辑 1: 我偶然发现的解决方案作为答案发布在下面。 最佳答案 有一
我有大约 200 张扫描照片,我想从中裁剪掉空白区域。参见示例: 有人可以为我提供适当的命令行代码来执行此操作吗?...我一直在尝试整理 -trim 和 -fuzz 选项,但没有成功。并非所有图像的大
我正在创建一个重命名照片的 bash 脚本,以便它们在文件名中包含日期和时间。我想用 ImageMagick 的 identify 实用程序建立一个文件名。 identify -format "IMG
我有一张长图source pic我想为每个子图像添加文本,但是当向书中添加文本时,我失败了,最终图像和代码: convert src.jpg -gravity north -pointsize 53
我想使用 CLI 向图像添加一个黑色矩形,该图像 1) 居中并且 2) 从每个边缘开始 X 像素。 基本上,我几乎想要 -border 的对立面(而不是添加某种颜色的边框,我想保留图像的 X 像素作为
所以我想创建一张由三张小图片组成的 3600x2280 大图片。第一个应调整为 1680x1050 并放置在左上角。第二个需要调整为 1920x1200 并立即放置在它的右侧(+1680 以上)。第三
我是一名优秀的程序员,十分优秀!