如何在 graphicsmagick 中控制扭曲和拉伸的图像 node.js
how to control the distorted and stretched image in graphicsmagick node.js
我希望通过调整图像大小来保持其纵横比不变来显示图像,但图像看起来被拉伸了。我有三张 50 x 50 的图像。我希望通过保持纵横比来调整左侧图像的大小。其他两个图像将与第一个图像平行上下显示。我认为 mosaic() 构建了四个块。但我想要三个块,在 fitst 块中,第一个图像会出现,它会一直调整大小直到结束,接下来的两个块,另外两个图像将上下显示并与第一个图像平行显示。下面是代码
gm()
.in('-page', '+0+0')
.in('-resize', '50x100!')
.in('http://localhost:8080/image1')
.in('-page', '+50+0')
.in('http://localhost:8080/image2')
.in('-page', '+50+50')
.in('http://localhost:8080/image3')
.mosaic()
.write('C:/images/output.jpg', function (err) {
if (err) console.log(err);
});
我想要一张像下面这样的图片,但在保持纵横比的情况下,黑色图片看起来被拉伸了,我不希望它被拉伸,黑色图片应该覆盖整个左侧区域直到结束
如果我删除!然后图像看起来像,我想要一个如上图但没有拉伸的图像
我不使用 node
但我认为你可以适应这个:
制作我们的三张图片:
convert -size 50x50 -background black -fill white -gravity center -pointsize 36 label:"1" image1.jpg
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"2" image3.jpg
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"3" image3.jpg
现在调整大小并排列:
convert image1.jpg -resize x100 -gravity center -extent 50x100 \( image2.jpg image3.jpg -append \) +append result.png
基本上,我使用 -resize x100
使 image1
100 像素高,然后使用 -gravity center -extent 50x100
从中间提取中央 50 像素宽的带。然后,在括号和 "on-the-side" 中,我正在加载 image2
和 image3
,并用 -append
将一个放在另一个下面。然后用 +append
将那对图像附加到原始图像的右侧,并将结果写出到 result.png
.
我希望通过调整图像大小来保持其纵横比不变来显示图像,但图像看起来被拉伸了。我有三张 50 x 50 的图像。我希望通过保持纵横比来调整左侧图像的大小。其他两个图像将与第一个图像平行上下显示。我认为 mosaic() 构建了四个块。但我想要三个块,在 fitst 块中,第一个图像会出现,它会一直调整大小直到结束,接下来的两个块,另外两个图像将上下显示并与第一个图像平行显示。下面是代码
gm()
.in('-page', '+0+0')
.in('-resize', '50x100!')
.in('http://localhost:8080/image1')
.in('-page', '+50+0')
.in('http://localhost:8080/image2')
.in('-page', '+50+50')
.in('http://localhost:8080/image3')
.mosaic()
.write('C:/images/output.jpg', function (err) {
if (err) console.log(err);
});
我想要一张像下面这样的图片,但在保持纵横比的情况下,黑色图片看起来被拉伸了,我不希望它被拉伸,黑色图片应该覆盖整个左侧区域直到结束
如果我删除!然后图像看起来像,我想要一个如上图但没有拉伸的图像
我不使用 node
但我认为你可以适应这个:
制作我们的三张图片:
convert -size 50x50 -background black -fill white -gravity center -pointsize 36 label:"1" image1.jpg
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"2" image3.jpg
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"3" image3.jpg
现在调整大小并排列:
convert image1.jpg -resize x100 -gravity center -extent 50x100 \( image2.jpg image3.jpg -append \) +append result.png
基本上,我使用 -resize x100
使 image1
100 像素高,然后使用 -gravity center -extent 50x100
从中间提取中央 50 像素宽的带。然后,在括号和 "on-the-side" 中,我正在加载 image2
和 image3
,并用 -append
将一个放在另一个下面。然后用 +append
将那对图像附加到原始图像的右侧,并将结果写出到 result.png
.