我目前正在尝试使用蜡染光栅化库将一些 .svg 图像渲染为 .png/.jpg 图像。
如果我尝试在其宽高比内转换图像,一切正常,但是当我尝试更改宽高比时(假设矢量图像是二次的,例如 32x32 并且我想将其拉伸到 64x32),它给了我输出图像的大小为 64x32 像素,矢量绘制在图像中间作为 32x32 区域。这是我正在使用的代码:
PNGTranscoder transcoder = new PNGTranscoder();
transcoder.addTranscodingHint(PNGTranscoder.KEY_WIDTH, width); //64px
transcoder.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, height); //32px
另外,我想使用转码提示
PNGTranscoder.KEY_MAXWIDTH
将图像拉伸至 128 像素的宽度,与其高度无关,但编码器不会将图像缩放至此宽度。
我做错了什么?
参考:使用 Apache Batik 缩放 SVG 图像时如何忽略比例?
rootElement.setAttribute("preserveAspectRatio", "none");