javascript - 在 Rails 中操作上传的 svg 文件

标签 javascript ruby-on-rails svg carrierwave

我正在构建一个使用 Carrierwave 的 Rails 应用程序让用户上传 svg 文件和 Inline_SVG在我的 View 中内联显示它们。我需要能够上传任何大小的文件,然后根据规范调整大小和旋转它们。

如果这些是 png 或 jpeg,ImageMagick 可以做到,但它不处理 svgs。

我尝试使用 javascript 更改属性来调整大小,但这并不能解决我的问题,而且我不知道如何旋转它们:

<script type="text/javascript">
  var img;
  var images = $('svg');
  for (i = 0; i < images.length; i++) { 
    img = images[i];
    img.setAttribute('viewBox', '0 0 1000 1000');
    img.removeAttribute('height');
    img.removeAttribute('width');
  }
</script>

有什么指点吗?

最佳答案

SVG 就像 xml 文件(文本文件),因此您应该直接编辑这些 SVG,或者在 Rails 应用程序中动态编辑这些 SVG。如果您想进行转换,请按照本教程进行操作( https://www.alt-soft.com/tutorial/svg_tutorial/svg_transform.html )

关于javascript - 在 Rails 中操作上传的 svg 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28752929/

相关文章:

mysql - 有效地从多个 rails 模型创建 "feed"?

javascript - 如何绘制动画效果填充SVG?

html - 更改 SVG 路径的位置

javascript - 图像拉伸(stretch)屏幕而不是适合 div

javascript - 数组名称可以被视为变量吗

ruby-on-rails - 带有自定义包装器的 simple_form 自定义输入

ruby-on-rails - Ruby 以 block 的形式创建 tar 球以避免内存不足错误

javascript - jQuery:当选择器相同时使用 :eq 选择第二个元素

javascript - 解构对象作为函数参数

需要 Javascript 正则表达式和转义建议