标签: graphicsmagick

调整 GIF 大小会丢失动画

我正在使用 GraphicsMagick (1.3.16) 和 im4java (1.4.0) 来创建 GIF 的缩略图。在命令行中,我可以执行以下操作:

convert original.gif -coalesce -resize 100x100 +profile * thumb.gif
Run Code Online (Sandbox Code Playgroud)

并成功创建缩略图,保留动画。但是我的应用程序中的某些内容没有翻译,因为看似相同/相似的命令:

- -coalesce -resize 100x100 +profile * gif:- 
Run Code Online (Sandbox Code Playgroud)

创建仅捕获动画的单个图像的缩略图。注意:输入通过管道输入,输出作为 BufferedImage 捕获。

如果有帮助,这里是用于创建我正在使用的上述 cmd 的代码块:

public static BufferedImage createThumb(byte[] imageFileData)
{
  GMOperation op = new GMOperation();
  op.addImage("-"); // input: stdin
  op.coalesce();
  op.resize(100, 100);
  op.p_profile("*");
  op.addImage("gif:-"); // output: stdout

  ConvertCmd cmd = new ConvertCmd(true); // use GraphicsMagick

  // Pipe the fileData to stdin, to avoid writing to a file first.
  ByteArrayInputStream bais = new ByteArrayInputStream(imageFileData); …
Run Code Online (Sandbox Code Playgroud)

graphicsmagick im4java

5
推荐指数
0
解决办法
939
查看次数

使用graphicsmagick或imagemagick调整图像大小,使其周围没有空白

我正在使用graphicsmagick 将图像大小调整为缩略图,但它添加了白色的周围边框填充。

在此输入图像描述

我正在使用的命令是:

gm convert matrix.jpg -resize "80x80>" -gravity center -extent 80x80 thumbnail.jpeg

正如您所看到的,图像周围有一些白色填充,但我不想要这样。理想情况下,我希望(整个图像而不仅仅是其中的一部分)填充所需的 80x80 输出尺寸。

如何在 imagemagick 或graphicsmagick 中实现这一点?

image imagemagick image-processing graphicsmagick

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

在 graphicsmagick 中,如何在大量文件上指定输出文件?

我想转换一组文件,但不覆盖现有文件。如何使用 mogrify 指定最终文件格式?例如firstpic.png -> firstpic-thumbnail.png、secondpic.png -> secondpic-thumbnail.png等。

gm mogrify -size 150x150 *.png -resize 150x150 +profile "*" "%f-thumbnail.png"

有没有办法做到这一点?

graphicsmagick

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

如何使用 gm 转换选定的 pdf 页面

我正在使用 Nodejs 的“gm”模块转换不同的图像和 pdf 文件。图像类型成功,但当我想将 PDF 转换为图像时遇到问题。我只需要将选定的一页从 pdf 文件转换为 jpg/png。如果我将整个 pdf 文件传递​​给“gm”,它只会将第一页保存到图像,但我找不到保存另一页的方法。

gm(file).toBuffer(format.toUpperCase(), 
       function (err, buffer) {
    // so in buffer now we have converted image
 }
Run Code Online (Sandbox Code Playgroud)

谢谢。

pdf imagemagick image-processing node.js graphicsmagick

5
推荐指数
2
解决办法
5730
查看次数

使用 Node.js 中的 GraphicsMagick/ImageMagick 包在 AWS Lambda 中将 JPG 转换为 WebP

我正在利用 AWS Lambda示例脚本使用 Node.js 和 ImageMagick/GraphicsMagick 库调整 JPG 图像的大小。我想做一个简单的修改,在调整大小后将图像从 JPG 转换为 WebP 格式。(GraphicsMagick 不支持 WebP,但 ImageMagick 支持,这是脚本中的子类)。根据此处缓冲区部分中的示例(将 JPG 转换为 PNG),使用以下代码块应该可以做到这一点。

gm('img.jpg')
.resize(100, 100)
.toBuffer('PNG',function (err, buffer) {
  if (err) return handle(err);
  console.log('done!');
})
Run Code Online (Sandbox Code Playgroud)

当我在本地 Node.js 安装中运行该代码块(用 WebP 替换 PNG)时,它可以工作。

但是,当我修改 AWS Lambda示例脚本的转换函数(见下文)并在 AWS 上执行它时,我收到以下“流产生空缓冲区”错误:

Unable to resize mybucket/104A0378.jpg and upload to mybucket_resized/resized-104A0378.jpg due to an error: Error: Stream yields empty buffer
Run Code Online (Sandbox Code Playgroud)

修改后的 transform() 函数(参见带有 'webp' 的行):

function tranform(response, next) …
Run Code Online (Sandbox Code Playgroud)

imagemagick amazon-web-services node.js graphicsmagick aws-lambda

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

节点的GraphicsMagick中的Unicode drawText“从右到左”语言问题

我正在使用GraphicsMagick作为节点,并尝试在图像上为“乌尔都语/阿拉伯语”绘制文本,此文本为“ ???????????????”,文本正在输出图像上绘制,但正在绘制为“从左至右” ”,而它必须是“从右到左”,因为阿拉伯语/乌尔都语是“从右到左”语言。

gm("/file.png")
             .fill('#FF0066')
             .drawText(100, -150, "?????? ?????", 'Center')
             .font("/alvi_Nastaleeq.ttf")
             .fontSize('38px')
             .encoding('Unicode')
Run Code Online (Sandbox Code Playgroud)

输出图像:

在此处输入图片说明

如果我正在尝试使用反向乌尔都语“ ??????????????” 字符串,即使文本无法正确绘制。

在此处输入图片说明

我在做什么错?我该如何解决?

谢谢,

graphicsmagick

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

Graphicsmagick - 将图像转换为 pdf,反之亦然

我想从imagemagick转到graphicsmagick

但我遇到了一些语法问题

使用 imagemagick

首先我需要将一些图像合并到PDF中

convert -density 300 page_*.tif output.pdf

然后我需要创建 PDF 第一页的缩略图

convert -density 300 file.pdf[0] -background white -alpha remove -resize 140x140 -strip -quality 40 thumb.jpg[0]

这工作正常..但我想将第一个命令切换为graphicsmagick

宽度graphicsmagick/imagemagick

这里的graphicsmagick语法工作得很好

gm convert -density 300 page_*.tif output.pdf

但是,当使用输出创建缩略图时,imagemagick其尺寸正确,但实际图像在图像本身内部缩小了?!

使用 imagemagick 生成缩略图

在此输入图像描述 https://secure.dyndev.dk/data/voucher/30000/400/30435_eb7e5d0a9df71b2783e2fa89efd9de12fcdb9679.pdf

带graphicsmagick的缩略图

在此输入图像描述 https://secure.dyndev.dk/data/voucher/30000/400/30433_7710d6404534b0868ab8da41dd651e971b70e16b.pdf

pdf imagemagick graphicsmagick

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

使用 Graphicsmagick 生成 Windows ICO 文件的方法

基于 imagemagick 的这个问题,graphicsmagick 的等价物是什么?使用 ImageMagick 创建 Windows ICO 文件的秘诀?

另外我只想生成一个具有多种尺寸的完全透明的 ico 文件。我发现有一个xc:none选项适用于两者,但是是否有一个命令可以生成具有多种大小的透明 ico 文件?否则我必须先创建一个透明的 png 文件,然后从该 png 文件创建 ico 文件。

imagemagick graphicsmagick

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

如何将图像文件从 SVG 转换为多尺寸 ICO 而不模糊(清晰)

我一直在使用 ImageMagick,但它产生的结果非常模糊。

convert -density 300 ../images/favicons/procensus.svg -background transparent -colors 256 -define icon:auto-resize favicon2.ico
Run Code Online (Sandbox Code Playgroud)

它似乎以 300 的密度渲染图像,然后使用高斯滤波器调整图标中所有其他尺寸的大小。

我真正想要它做的是在图标中的每个像素大小上使用shape-rendering="crispEdges"重新渲染。

我希望 ImageMagick(或任何其他工具)以每个提供的 .ico 密度重新渲染 SVG。

请注意,这个工具应该只是我可以在包构建时使用的工具:一个用于 Linux 的开源可安装软件。

favicon svg imagemagick ico graphicsmagick

5
推荐指数
3
解决办法
2478
查看次数

将条件添加到Graphic Magic Command

我有以下命令:

gm('input.jpg')
.crop(500, 500, 10, 10)
.write('output.jpg', function (err) {
  if (err) {
        console.log(err)
  } else {

        console.log('Success')
  }
})
Run Code Online (Sandbox Code Playgroud)

我想添加一个条件,而不必编写2个不同的命令,所以它将是这样的:

var overlay = true
gm('input.jpg')
.crop(500, 500, 10, 10)
if(overlay == true){
 .draw('image Over 0,0 750,750 overlay.jpg')
}
.write('output.jpg', function (err) {
  if (err) {
        console.log(err)
  } else {

        console.log('Success')
  }
})
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码不会运行,我正在寻找一个可以工作的建议,没有2个不同的GM命令

javascript node.js graphicsmagick

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