- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用minimagick
将 SVG 图像动态调整为 PNG 图像。
这是我的代码:
require "mini_magick"
svgString = '<?xml version="1.0" encoding="UTF-8"?>'\
'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" viewBox="0, 0, 512, 512">'\
'<g id="Calque_1">'\
' <g>'\
' <path d="M256,432.5 C143.61,432.5 52.5,345.867 52.5,239 C52.5,132.133 143.61,45.5 256,45.5 C368.39,45.5 459.5,132.133 459.5,239 C459.5,345.867 368.39,432.5 256,432.5 z" fill="#FFFFFF"/>'\
' <path d="M256,432.5 C143.61,432.5 52.5,345.867 52.5,239 C52.5,132.133 143.61,45.5 256,45.5 C368.39,45.5 459.5,132.133 459.5,239 C459.5,345.867 368.39,432.5 256,432.5 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>'\
' </g>'\
' <text transform="matrix(1, 0, 0, 1, 179.125, 208)">'\
' <tspan x="-28.125" y="10.5" font-size="24" fill="#000000">Is this using my font?</tspan>'\
' </text>'\
' </g>'\
'</svg>'
image = MiniMagick::Image.read(svgString)
image.combine_options do |b|
b.resize "760x760"
b.font "/Users/foo/Library/Fonts/myFont.ttf"
end
image.format("png", 1)
image.write('from-string.png')
图像已渲染,但它是 512x512 图像(视口(viewport)大小),并且渲染中未使用字体 myFont
。
知道如何解决这个问题吗?
最佳答案
不确定这是否有助于调试您的问题,但如果您从 SVG
字符串中删除特定于语言的内容并将其保存在名为 image.svg
的文件中>,您可以使用ImageMagick的命令行版本进行测试:
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" viewBox="0, 0, 512, 512">
<g id="Calque_1">
<g>
<path d="M256,432.5 C143.61,432.5 52.5,345.867 52.5,239 C52.5,132.133 143.61,45.5 256,45.5 C368.39,45.5 459.5,132.133 459.5,239 C459.5,345.867 368.39,432.5 256,432.5 z" fill="#FFFFFF"/>
<path d="M256,432.5 C143.61,432.5 52.5,345.867 52.5,239 C52.5,132.133 143.61,45.5 256,45.5 C368.39,45.5 459.5,132.133 459.5,239 C459.5,345.867 368.39,432.5 256,432.5 z" fill-opacity="0" stroke="#000000" stroke-width="1"/>
</g>
<text transform="matrix(1, 0, 0, 1, 179.125, 208)">
<tspan x="-28.125" y="10.5" font-size="24" fill="#000000">Is this using my font?</tspan>
</text>
</g>
</svg>
像这样:
convert -resize 760x760 -font "AdobeDevanagariBI" image.svg image.png
你会得到这个:
其中使用我指定的字体(我没有你的)并且也是760x760。
我希望这会有所帮助。我的推断是,要么你的 ImageMagick 已经过时,要么 MiniMagick 有错误。抱歉,我不知道如何调试 MiniMagick - 你能看到它实际上在幕后做什么吗?有调试器吗?
版本:ImageMagick 6.9.1-10 Q16 x86_64 2015-08-06 http://www.imagemagick.org
关于svg - 如何使用 MiniMagick 进行 SVG 到 PNG 渲染而不忽略大小和字体选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748467/
一直在研究但未能查明问题:我正在关注 Railscasts PRO #182 使用 JCrop、Carrierwave 和 Minimagick 裁剪图像。当我开始重新创建图像版本时,提示错误: Ca
我已经使用 resize_to_fill 缩小到 [1,1] 大小,从而将图像减少到一个像素,包含基本上整个图像的平均颜色(当然,前提是图像的高度和宽度之间没有巨大的差异) . 现在我试图以十六进制格
给定: 纹理 和一张照片(无透明背景) 如何给照片赋予纹理? 具体来说,我需要以下步骤: 平铺纹理。来自 here ,我有:convert -size 1056x576 tile:Castillo_0
我按照 github 官方页面的说明安装 Redactor-rails ruby gem SammyLin/redactor-rails ,一切都好,但是当我尝试上传图像时,出现如下错误: 于 2
我们正在尝试通过我们的应用构建自定义社交分享图像。后端使用 Ruby/Sinatra 构建,我们已经使用 MiniMagick+AWS-SDK 上传用户图片。 我们想要做的是获取用户图像并在用户图像之
我正在尝试使用 MiniMagick 调整图像大小,并且在我的 Controller 文件中执行了以下操作: require 'rubygems' require 'mini_magick' 和 im
我使用 mini_magick 作为使用 ImageMagick 来操作一些图像的接口(interface)。 调整大小工作正常 .但是当我想裁剪一些图像时: img = MiniMagick::Im
假设我有这样一张图片:http://shop2.vans.com/wcsstore/Vans/images/products/NKA8MOD1B.JPG 我该怎么做才能裁剪图像,以便摆脱背景。所以,在
我正在尝试通过以下方式使用 Minimagick 创建图像: collage = MiniMagick::Image.create "jpg", false do |c| c.size "10
有没有办法操纵像素并创建或修改操纵图像以反射(reflect)对像素所做的更改? Minimagick 只提供了一个get_pixels 方法。 我应该将数组转换为字符串并使用 import_pixe
我遇到了 MiniMagick 的问题 这是我想要的描述。 我正在使用以下 gem 来创建 QR 码。 gem 'rqrcode-rails3' 因为那个 gem 以 SVG 格式响应我的 QR
我运行的是 windows xp,并且安装了 MiniMagick 和 ImageMagick(最新版本)。我现在正在使用控制台测试一切是否正常。使用 ms 命令提示符 image magick 没有
我正在尝试在图像上写一个字符串。目前我正在使用 MiniMagick,我可以调整大小和重叠两个图像,但是当我尝试使用标题编写多行字符串时,最终图像没有任何变化,它仍然和以前一样。 这是我当前的代码:
我想根据图像是横向还是纵向以不同方式处理图像。 这是我的图片 uploader 模型中的代码: def is_landscape? if @file image = ::MiniM
我一直在到处寻找,没有结果。 所以我使用 Active Storage 来处理我的模型图像。 我的产品型号如下: class Product < ApplicationRecord has_one
有人知道如何使用 Carrierwave + MiniMagick 将动画 GIF 压缩到第一帧吗? 最佳答案 我认为 MiniMagick 有一些变化,因为我只花了三个小时试图找出为什么 Andre
使用以下设置在 Ubuntu 16.04 上运行: Ruby 2.2.4、Nginx + 乘客、ImageMagick 7.x 问题:我正在使用 Shrine 和 Minimagick。一切都在开发中
我想要做的是通过 IMGKit 保存带有全尺寸快照的网站 url。在其中一个 View 中,我还想拥有快照的缩略图版本。我正在使用carrierwave以便将快照与MiniMagick的对象相关联来操
我的要求是如果正在上传 pdf 文件,则将 pdf 转换为图像。到目前为止,这就是我所做的。 class ImageUploader [800, 600] end version :thum
我有 Image 模型和 Movie 模型,Movie 可以有很多 images。我正在存储图像的 3 个版本,大、中和小。在我的应用程序中,用户可以选择特定尺寸的图像,比如 4 张“中等”尺寸的图像
我是一名优秀的程序员,十分优秀!