标签: imagemagick

将图像裁剪或遮盖成圆圈

使用ImageMagick或GD库将图像裁剪或遮盖成圆形的最佳方法是什么?(注意,解决方案存在于"其他"问答网站,但不存在StackOverflow)

php gd imagemagick

15
推荐指数
1
解决办法
2万
查看次数

将PHP/GD包装器移植到Imagick的问题

我最近发现,与GD相比,Imagick可以支持颜色配置文件,从而产生质量更好的图像(有关更多详细信息,请参阅此问题/答案),所以我试图将我的GD包装器移植到使用Imagick类,而不是目前的GD实现如下:

function Image($input, $crop = null, $scale = null, $merge = null, $output = null, $sharp = true)
{
    if (isset($input, $output) === true)
    {
        if (is_string($input) === true)
        {
            $input = @ImageCreateFromString(@file_get_contents($input));
        }

        if (is_resource($input) === true)
        {
            $size = array(ImageSX($input), ImageSY($input));
            $crop = array_values(array_filter(explode('/', $crop), 'is_numeric'));
            $scale = array_values(array_filter(explode('*', $scale), 'is_numeric'));

            if (count($crop) == 2)
            {
                $crop = array($size[0] / $size[1], $crop[0] / $crop[1]);

                if ($crop[0] > $crop[1])
                {
                    $size[0] = round($size[1] * $crop[1]); …
Run Code Online (Sandbox Code Playgroud)

php gd image imagemagick imagick

15
推荐指数
1
解决办法
2936
查看次数

解决:在安装Homebrew ImageMagick之后,MAMP Php无法执行('转换')

我在Lion上使用Homebrew安装了Imagemagick,一切都很好,除了它从php调用时根本不起作用.安慰:

$ convert -version
Version: ImageMagick 6.7.1-1 2011-07-29 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP   

$ which convert
/usr/local/bin/convert
Run Code Online (Sandbox Code Playgroud)

PHP:

echo exec ('convert -version');
Run Code Online (Sandbox Code Playgroud)

或者exec('convert -version',$ output); 的var_dump($输出);

什么都不产生(或空数组).

exec ('/usr/local/bin/convert') // works, but
exec ('which convert') // doesn't
Run Code Online (Sandbox Code Playgroud)

我需要在本地测试它,以确保我可以检测生产环境中的转换.但我无法正确测试它.PATH已设置,它可以在终端中运行,但不能在PHP中运行.

解决:

事实证明,对于php应该工作convert,/usr/bin/所以这解决了它:

ln -s /usr/local/bin/convert /usr/bin/convert
Run Code Online (Sandbox Code Playgroud)

更新

这是因为MAMP,这是修复:http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp

打开/ Applications/MAMP/Library/bin/envvars

并注释掉以下几行:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

完成.

php homebrew mamp imagemagick osx-lion

15
推荐指数
1
解决办法
8251
查看次数

Rmagick无法读取字体

我有一段代码在我的Rails应用程序中在图像上绘制文本,并且从很久以前,可能不得不升级到OS X Yosemite,它在本地计算机上读取字体时遇到问题(生产服务器是工作正常).

我可以将它减少到这个例子:

require 'rvg/rvg'
font = '"/Users/xxxxxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf"'
rvg = Magick::RVG.new(100,100) do |canvas|
  canvas.text(0, 0, 'my text').styles(font: font)  
end  
rvg.draw
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

Magick::ImageMagickError: unable to read font `"/Users/xxxxxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf"' @ error/annotate.c/RenderFreetype/1153: `(null)'
from /Users/xxxxxxxx/.rvm/gems/ruby-2.0.0-p353@xxxxxxxx/gems/rmagick-2.13.2/lib/rvg/misc.rb:322:in `get_type_metrics'
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装imagemagick和rmagick gem,也使用这些标志:

brew install imagemagick --disable-openmp --build-from-source
Run Code Online (Sandbox Code Playgroud)

另外,如果我改变了

font = "/Users/xxxxxx/xxxxx/app/assets/fonts/PTSans-Regular.ttf"
Run Code Online (Sandbox Code Playgroud)

我认为额外的报价可能会妨碍我

Magick::ImageMagickError: non-conforming drawing primitive definition `Users/xxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf' @ error/draw.c/DrawImage/3170
from /Users/xxxxxxx/.rvm/gems/ruby-2.0.0-p353@xxxx/gems/rmagick-2.13.2/lib/rvg/misc.rb:546:in `draw'
Run Code Online (Sandbox Code Playgroud)

我还尝试从http://xquartz.macosforge.org/landing/安装最新版本的XQuartz

ruby fonts rmagick imagemagick

15
推荐指数
1
解决办法
3940
查看次数

使用ubuntu上的转换使用填充调整图像大小

我正在使用convert命令来调整图像大小

有两个版本

以下是第一个,结果图像保持纵横比,但图像不一定是大小 nxn

 convert temp.jpg -resize nxn temp.jpg
Run Code Online (Sandbox Code Playgroud)

第二个版本

 convert temp.jpg -resize nxn! temp.jpg
Run Code Online (Sandbox Code Playgroud)

它不保留纵横比.

我想要的是保留纵横比,并用所需的RGB值填充图像的其余部分以实现尺寸 nxn

有任何想法吗?

谢谢

linux image imagemagick image-resizing

15
推荐指数
1
解决办法
4977
查看次数

ImageMagick module not available with this PHP installation on Laravel 5.4 with PHP 7

目前,我已经克隆了一个项目。我在 Ubuntu 14.04 64 位上有 PHP 7。

使用以下命令安装 ImageMagick 库

sudo apt-get install php-imagick
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过这个库进行图像处理时,它会抛出以下异常

(1/1) NotSupportedException
ImageMagick module not available with this PHP installation.
Run Code Online (Sandbox Code Playgroud)

如何使用最新的 PHP 版本安装此软件?

注意:我在这个项目中使用 Laravel 5.4。

php imagemagick laravel-5

15
推荐指数
2
解决办法
2万
查看次数

谷歌PageSpeed和ImageMagick JPG压缩

鉴于用户上传的图像,我需要创建它的各种缩略图,以便在网站上显示.我正在使用ImageMagick并试图让Google PageSpeed感到高兴.不幸的是,无论quality我在convert命令中指定了什么值,PageSpeed仍然能够建议进一步压缩图像.

请注意http://www.imagemagick.org/script/command-line-options.php?ImageMagick=2khj9jcl1gd12mmiu4lbo9p365#quality提到:

对于JPEG ...图像格式,质量为1 [提供]最低图像质量和最高压缩....

我实际上甚至测试过使用1来压缩图像(虽然它产生了无法使用的图像),而PageSpeed仍然建议我仍然可以通过"无损压缩"图像来优化这种图像.我不知道如何使用ImageMagick压缩图像.有什么建议?

这是测试我所说的内容的快速方法:

assert_options(ASSERT_BAIL, TRUE);

// TODO: specify valid image here
$input_filename = 'Dock.jpg';

assert(file_exists($input_filename));

$qualities = array('100', '75', '50', '25', '1');
$geometries = array('100x100', '250x250', '400x400');

foreach($qualities as $quality)
{
    echo("<h1>$quality</h1>");
    foreach ($geometries as $geometry)
    {
        $output_filename = "$geometry-$quality.jpg";

        $command = "convert -units PixelsPerInch -density 72x72 -quality $quality -resize $geometry $input_filename $output_filename";
        $output  = array();
        $return  = 0;
        exec($command, $output, $return);

        echo('<img src="' . $output_filename . '" …
Run Code Online (Sandbox Code Playgroud)

compression jpeg imagemagick image-processing pagespeed

14
推荐指数
1
解决办法
9753
查看次数

如何找到图像的主色?

我们可以使用java,imagemagick或jmagick找到图像中哪种颜色占主导地位?

java imagemagick jmagick

14
推荐指数
2
解决办法
2万
查看次数

了解透视投影失真ImageMagick

对于一个项目,我试图创建一个图像的透视扭曲,以匹配DVD案例前端模板.所以我想使用ImageMagick(CLI)自动执行此操作,但我很难理解这种转换的数学方面.

convert \
  -verbose mw2.png \
  -alpha set \
  -virtual-pixel transparent \
  -distort Perspective-Projection '0,0 0,0   0,0 0,0' \
   box.png
Run Code Online (Sandbox Code Playgroud)

这段代码是空的坐标集,我已经彻底阅读了文档,但我似乎无法理解什么参数代表什么点.文档给了我变量和名称,我不知道它们实际意味着什么(对数学策划者来说更有用).因此,如果有人可以解释我(视觉上优先,或给我一个有用信息的链接),因为我不清楚我在做什么.只是玩这些工作的参数,我需要计算这些点.

在这里,您将找到我想要实现的目标的简单图像(使用CLI工具):

输入示例图像http://img707.imageshack.us/img707/5419/objecttoachieve.jpg

更新:

   convert \
        -virtual-pixel transparent \
        -size 159x92 \
        -verbose \
        cd_empty.png \
        \(mw2.png -distort Perspective '7,40 4,30   4,124 4,123   85,122 100,123   85,2 100,30'\) \
         -geometry +3+20 \
        -composite cover-after.png
Run Code Online (Sandbox Code Playgroud)

给我输出:

cd_empty.png PNG 92x159 92x159+0+0 8-bit sRGB 16.1KB 0.000u 0:00.000
convert: unable to open image `(mw2.png': No such file or directory @ error/blob.c/OpenBlob/2641.
convert: unable to open …
Run Code Online (Sandbox Code Playgroud)

imagemagick command-line-interface perspective

14
推荐指数
1
解决办法
7295
查看次数

ImageMagick:转换不断将颜色空间更改为灰色.如何保留sRGB色彩空间?

我有一个批处理脚本,可以将我的PNG-24(带透明度)图像转换为50%和25%的大小(用于移动开发).通常这些图像中有颜色,但现在我试图转换没有颜色的图像,ImageMagick不断将颜色空间配置文件更改为"灰色",这会在我正在使用的3d引擎(Unity)中弄乱我的图像.

我试图强制它使用TrueColor类型,色彩空间sRGB和sRGB.icc配置文件(OSX附带的配置文件)但它似乎并不关心.它仍然将其更改为格雷.

> convert old.png -profile srgb.icc -colorspace sRGB -type TrueColor new.png
> identify *.png
  old.png PNG 140x140 140x140+0+0 8-bit sRGB 3.68KB 0.000u 0:00.000
  new.png PNG 140x140 140x140+0+0 8-bit sRGB 256c 2.33KB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

ImageMagick仍然将其识别为8位sRGB图像,但它在它之后放置"256c",我假设它意味着它已将它减少到256色,我也不想要.当我在OSX Preview.app中查看图像时,它表示它正在使用灰色配置文件.图像在视觉上看起来也有很多不同.

这是我正在使用的图像:https://dl.dropbox.com/u/59304/old.png

这里有一个重复的问题,ImageMagick将Colorspace缩小为灰色,但答案对我不起作用,遗憾的是我没有足够的声誉评论他的答案.我想我的情况有所不同,因为我使用的是PNG,而不是JPG.

Version: ImageMagick 6.8.0-7 2013-01-02 Q16 http://www.imagemagick.org
Features:  OpenCL 
Run Code Online (Sandbox Code Playgroud)

编辑 - 在阅读其中一个答案中指定的ImageMagick论坛后,看起来只是将PNG32:或PNG24:添加到输出文件中解决了问题.

imagemagick color-space

14
推荐指数
2
解决办法
6951
查看次数