标签: imagemagick

在浏览器中显示多页 tiff

我想知道是否有任何方法可以使用客户端编码(而不是服务器端)在浏览器中显示多页 tif 图像,以便用户可以像常见的 jquery 照片库一样在页面之间导航。我从https://github.com/seikichi/tiff.js找到了 Tiff.js ,但是这个库只提供了多页 tiff 的下载链接,并且不以 html 形式显示它。

我可以在服务器端使用 ImageMagic、LibTiff.Net 等库来完成此操作,但我不想这样做,因为照片数量巨大,如果我这样做,会消耗大量服务器的 cpu

你知道有什么替代解决方案吗?

javascript jquery tiff imagemagick

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

如何使用 imagemagick 在图像周围添加更多空白

如何使用https://github.com/rsms/node-imagemagick在图像周围添加更多空白?例如原始图像是width:300, height:100,我想生成新图像是width: 600, height: 200原始图像位于中心保持原始大小,在周围添加空白以成为新图像。

我尝试了下面的代码,但这使原始图像变成 600*200 ...如何解决它?

function cropGravity(srcFilePath, dstFilePath, resizeWidth, resizeHeight, quality, gravity) {
  return new Promise(function (resolve, reject){
    im.crop({
      srcPath: srcFilePath,
      dstPath: dstFilePath,
      width: resizeWidth,
      height: resizeHeight,
      quality: quality,
      gravity: gravity
    }, function(error, stdout, stderr){
      if (error != null) {
        console.log(error)
        reject(error);
      } else {
        resolve(dstFilePath);
      }
    });
  });
};

...
var resizeWidth = 600;
var resizeHeight = 200;
var quality = 1;
var gravity = 'Center';
cropGravity(srcFilePath, dstFilePath, resizeWidth, resizeHeight, …
Run Code Online (Sandbox Code Playgroud)

imagemagick node.js node-imagemagick

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

ImageMagic php中的模糊洪水填充-制作透明图像

我正在编写一个用透明颜色删除背景颜色的脚本。

脚本是这样的,给出的结果还可以,可以区分紫红色。

        $val = 65535/40;
        //divide by fuzz dilution, 1 is none
        $val = floatval($val/0.9);
        //create white border
        $image->borderImage ( "rgb(255,255,255)" , 1 , 1 );
        //make all white fill fuchsia 
        $image->floodFillPaintImage ( "rgb(255, 0, 255)" ,$val*3, "rgb(255,255,255)", 0 , 0, false);
        //make fuchsia transparent
        $image->paintTransparentImage("rgb(255,0,255)", 0.0, 0.5); 
        //remove border 1px that was added above
        $image->shaveImage ( 1 , 1 );
Run Code Online (Sandbox Code Playgroud)

然而,它会在图像周围留下颜色的痕迹。这是我尝试删除白色背景手机周围边框的示例 - 您可以清楚地看到边缘上的白色痕迹。

在此输入图像描述

问题是 - 当对像素 0,0 进行洪水填充时,背景颜色颜色错误,我需要一个“模糊”桶填充函数。Imagemagic为floodFillPaintImage提供了“模糊”算法,但“模糊”部分的参数仅起到像素选择的作用,并不能起到模糊着色的作用。

例如,我有一个 100% 白色 - 算法正确地选择了完美的白色背景,并用新的、完美的紫红色图像填充它。当您设置“模糊”参数时,算法会正确选择80% 白色像素(例如),但会再次使用 100% …

php algorithm background colors imagemagick

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

如何在 gif 周围添加透明空间?

我需要获取一个旋转器 gif 并向其中添加文本,但文本需要位于旋转器动画下方、当前图像边框下方。

是否有命令可以使用 Imagemagick 在图像周围添加透明空间?或者,是否有免费的在线工具可以达到相同的结果?

我尝试了以下方法,但它创建了一个非常紧张且无法使用的图像:

convert spinner.gif -background none -gravity north -extent 400x200 new_spinner.gif
Run Code Online (Sandbox Code Playgroud)

image imagemagick animated-gif

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

将 imagemagick 文本设置为中间

我正在使用 imagemagick 在图像上放置一些文本,但我正在努力寻找一种方法来动态地将文本爆炸放在框的中间。

对于奖励积分,是否还有一种方法可以使用第二个命令将其偏移,即将其从中心向右微移 50px。这是因为通常我希望文本位于中间,除非他们添加图片,那么我也需要为图片腾出空间。

文本和字体大小将是可变的,但仍然需要居中。

这是我当前的代码:

<?php
function process($inputdata)
{
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(400, 300, $pixel);

/* Black text */
$draw->setFillColor('black');

/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, $inputdata);

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;
return;
}
Run Code Online (Sandbox Code Playgroud)

我尝试添加这个命令,但似乎没有任何效果: …

php image-manipulation imagemagick

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

向图像添加标签 NodeJS ImageMagick

如果有人问这个问题,我深表歉意,但我正在努力寻找答案。

我正在将 Node GM 包与 ImageMagick 一起使用。因为我的印象是label那里唯一的作品。

我想拍摄一张图像并label在其顶部添加一个。

我最初是用来drawText()实现这一点的,但是我需要利用labelIM 中的自动调整大小。我所拥有的是:

im(path.join(__dirname, '../public/images/imgen/backgrounds/', color + '_' + type + '.png'))
    .gravity('West')
    .fill('#FFFFFF')
    .font(path.join(__dirname, '../public/fonts/Lato/Lato-Bold.ttf'))
    .out('label: ' + text)
    .write(
      path.join(__dirname, '../public/images/imgen/generated/', fileName), function(err) {
        if (!err) {
          // If the write was successful then redirect to the new image
          res.redirect('/images/imgen/generated/' + fileName);
        } else {
          console.error(err);
          res.status(500).end();
        }
    });
Run Code Online (Sandbox Code Playgroud)

上面生成了两张图像而不是一张。我猜我需要创建一个空图像并将该图像插入作为背景。但我不知道如何做到这一点。

im(1080, 1080)
    .gravity('West')
    .fill('#FFFFFF')
    .font(path.join(__dirname, '../public/fonts/Lato/Lato-Bold.ttf'))
    // Add the image as a background …
Run Code Online (Sandbox Code Playgroud)

image imagemagick node.js graphicsmagick

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

将图像转换为特定的 JPG 质量

我想将图像格式转换为特定质量的 JPG

由于某种原因以下命令不起作用,我得到的只是 NULL

gm convert -quality 80 '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'

然而,以下命令工作正常,但graphicsmagick 设置默认质量为 75

gm convert '/tmp/phpK31vNK' JPEG:'/tmp/phpK31vNK' && cat '/tmp/phpK31vNK'

imagemagick graphicsmagick

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

如何将多个文件名传递给 ImageMagick?

为了将多个图像平均在一起,通配符效果很好:

magick convert -average *.png out.png
Run Code Online (Sandbox Code Playgroud)

但是,如何在 Windows 命令行上指定多个输入图像而不使用通配符呢?(最终目标是制作一个批处理文件,以便我可以选择多个图像,然后使用 SendTo 菜单将它们组合起来,为此%*将收到"C:\...filename.png" "C:\...file2.png" "C:\...something.png"。)

windows command-line imagemagick

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

ImageMagick 蒙太奇始终包含标签

ImageMagick 文档中,它说如果您在montage没有任何花哨选项的情况下使用,它应该只是排列您的图像,没有任何装饰并有一些间距。

\n\n

那不会发生在我身上。这是我的两个输入图像:

\n\n

图片1\n在此输入图像描述

\n\n

这是两个独立的 PNG,尺寸均为 100x100,具有红色背景。现在,如果我运行,它会生成一个如下所示的montage 1.png 2.png out.png图像文件:out.png

\n\n

输出.png

\n\n

您可能会注意到,那里有标签。我已经尝试了所有方法,但无法删除这些标签。例如,添加-label ""到命令中会产生以下结果:

\n\n

输出2.png

\n\n

由于白色背景,这并不明显,但标签的空间仍然是图像的一部分,那里什么也没有。

\n\n

最终结果是我想紧密地打包这些图像(因此这两个图像将生成 200x100 png),并且我希望命令是这样的:montage -geometry 100x100+0+0 -label "" -background blue 1.png 2.png out3.png这里我将背景设为蓝色以突出显示“标签”区域,在最终版本中它应该是不必要的。这就是该命令产生的结果:

\n\n

输出3.png

\n\n

图像大小为 200x118,表示为标签添加了 18 个像素。删除命令的标签参数除了使标签成为数字之外没有任何作用。我想我有点失去理智了,我已经尝试了这个命令的几十种变体,但没有什么可以摆脱“标签空间”。鉴于它们默认显示,并且文档表明它不应该显示,我开始怀疑它是 ImageMagick 中的错误,但再次:失去了理智。我想我可能只是错过了一些明显的东西。

\n\n

我在 macOS 上通过 Homebrew 安装了 ImageMagick,尽管我尝试直接从他们的网站使用该版本,但它不起作用。报道是这样的montage -version

\n\n
Version: ImageMagick 7.0.5-7 Q16 x86_64 2017-05-20 http://www.imagemagick.org\nCopyright: \xc2\xa9 1999-2017 ImageMagick Studio LLC\nLicense: http://www.imagemagick.org/script/license.php\nFeatures: Cipher DPC HDRI Modules\nDelegates …
Run Code Online (Sandbox Code Playgroud)

imagemagick imagemagick-montage

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

提高图像的 DPI

跟进这个帖子

你好社区。我正在尝试解决与上面帖子中提到的相同的问题。我想在将图像发送到 OCR 之前对其进行预处理,以便获得不错的输出。出于这个原因,我想增加图像的 DPI,建议的解决方案是使用 Imagemagik。有人可以帮助我如何使用 Imagemagick 重新采样图像吗?它有很多重采样过滤器,我不确定如何进一步进行。这是 ImageMagick 重采样页面Resampling的链接。

我是信号处理和计算机视觉的新手。我希望一些大师可以建议我做什么以及如何做。

tesseract imagemagick image-processing computer-vision

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