我正在尝试安装一个 gem,它依赖于 windows 10 的 rmagick。但是每次我尝试安装它时,都会出现此错误:
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20160126-6648-ks1v6.rb extconf.rb -- with-opt-dir=C:/ImageMagick
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
extconf.rb:110:in ``': No such file or directory - identify -version (Errno::ENOENT)
from extconf.rb:110:in …Run Code Online (Sandbox Code Playgroud) 我正在将我的rails应用程序从paperclip迁移到ActiveStorage,它只是不接受crop变体中的参数
这一行:
@user.image.variant(crop: [180,135])
Run Code Online (Sandbox Code Playgroud)
导致此错误:
Errno::ENOENT (No such file or directory @ rb_sysopen - /var/folders/dd/dy3xgqrs2vv6h97ckrtmrb4m0000gn/T/mini_magick20180526-14598-njz21n.jpg):
activestorage (5.2.0) app/models/active_storage/variant.rb:130:in `initialize'
activestorage (5.2.0) app/models/active_storage/variant.rb:130:in `open'
activestorage (5.2.0) app/models/active_storage/variant.rb:130:in `upload'
activestorage (5.2.0) app/models/active_storage/variant.rb:88:in `block in process'
activestorage (5.2.0) app/models/active_storage/variant.rb:110:in `open_image'
activestorage (5.2.0) app/models/active_storage/variant.rb:85:in `process'
activestorage (5.2.0) app/models/active_storage/variant.rb:53:in `processed'
activestorage (5.2.0) app/controllers/active_storage/representations_controller.rb:12:in `show'
Run Code Online (Sandbox Code Playgroud)
而例如.这工作:
@user.image.variant(resize: '180x135')
Run Code Online (Sandbox Code Playgroud) 目的是
我有 1 个工作要做,但不确定这是最好的方法。这是一个工作示例。
library(magick)
path <- "https://cdn.pixabay.com/photo/2016/08/17/21/12/people-1601516_960_720.jpg"
img <- magick::image_read(path)
img
Run Code Online (Sandbox Code Playgroud)
原始图像
ii <- magick::image_info(img)
ii_min <- min(ii$width,ii$height)
img1 <- magick::image_crop(img, geometry=paste0(ii_min,"x",ii_min,"+0+0"),repage=TRUE)
img1
Run Code Online (Sandbox Code Playgroud)
裁剪方形纵横比
我不确定如何让最后一部分(2)在 R 中工作。尽管我已经设法在 unix 中使用 image-magick 让它工作。
convert -size 500x500 xc:white -fill cropped.jpeg -draw "circle 250,250 250,1" circ.jpg
Run Code Online (Sandbox Code Playgroud)
圆形框架
我正在寻找R中2的解决方案。
我在一个红宝石项目中使用Rmagick生成一个标题,所有工作正常如下,但我需要在标题后面放一个图像,我想知道是否有任何方法找出我刚刚绘制的文本的宽度?谢谢
canvas = Magick::Image.new(600, 18){ self.background_color = '#212121' }
gc = Magick::Draw.new
gc.fill('white')
gc.font = ("lib/fonts/AvenirLTStd-Book.otf")
gc.pointsize = 18.0
@title = "hello world"
gc.text(0, 14, @title)
gc.draw(canvas)
canvas.format = 'png'
canvas.to_blob
Run Code Online (Sandbox Code Playgroud) 我想调整图像大小/缩放图像.原件尺寸与300x200或512x600不同.我想将图像调整为100x100,但不要从图像或变化率中裁剪任何东西.理想情况下,图像首先将长边缩放到100(纵横比),然后用白色填充较小的边缘.
.---------.
|- - - - -|
| IMAGE |
|- - - - -|
'---------'
Run Code Online (Sandbox Code Playgroud)
我不使用Paperclip或Rails,只使用RMagick.
你如何缩小图像直到一方用Carrierwave和rmagick达到它的目标维度?
例:
目标尺寸:600x400
正在上传的图片:700x450
我希望缩小此图像,直到高度达到400像素,保持原始高宽比.
这将导致具有以下尺寸的图像:622x400
我需要在rmagick中操纵图像的每个像素.我在IRB(互动红宝石)中这样做这就是我所拥有的:
require 'Rmagick'
include Magick
f = Image.new(100,100)
f.display #so far so good. A 100x100 white image is displayed
f.each_pixel {|pixel, c, r| pixel.red = 0}
f.display #the image is still white. It should really be a shade of blue.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在使用此方法调整图像大小:
version :big do
process :resize_to_fit => [560, 200]
process :convert => :png
end
Run Code Online (Sandbox Code Playgroud)
但是用这种方法我写了一个固定的高度.
我只想缩放或调整宽度图像的大小.
我希望图像的高度是自动的,并将图像缩放到已给出的宽度.
如何缩放或调整大小,仅宽度图像?
我正在使用带有载波的minimagick.
我想压缩一个png并将其保存为jpg:
i = Image.read("http://ds4jk3cl4iz0o.cloudfront.net/e2558b0d34221d3270189320173dabc2.png").first
Run Code Online (Sandbox Code Playgroud)
它的大小是799 kb:
http://ds4jk3cl4iz0o.cloudfront.net/e2558b0d34221d3270189320173dabc2.png=>e2558b0d34221d3270189320173dabc2.png PNG 640x639 640x639+0+0 DirectClass 8-bit 799kb
Run Code Online (Sandbox Code Playgroud)
我将格式设置为jpeg,质量设置为10(即质量非常差,因此文件大小应该大大减少):
i.format = 'JPEG'
i.write("itest10.png") { self.quality = 10 }
Run Code Online (Sandbox Code Playgroud)
大小实际上增加到800kb!
=> http://ds4jk3cl4iz0o.cloudfront.net/e2558b0d34221d3270189320173dabc2.png=>itest40.png PNG 640x639 640x639+0+0 DirectClass 8-bit 800kb
Run Code Online (Sandbox Code Playgroud)
1)为什么?
2)如何压缩照片,使尺寸<150kb?
谢谢!
我想用命令行界面将阿拉伯文本绘制到位图(bmp或png)中.
我尝试过imagemagick和RMagick,但是我遇到了RTL语言问题.我所有的渲染都是从左到右.谷歌没有帮助.
要求:
./render "???? ????????" out.png
Run Code Online (Sandbox Code Playgroud)
会给出一个位图:
لوحةالمفاتيح
谁能给我一些成功的结果?
rmagick ×10
ruby ×6
imagemagick ×4
minimagick ×2
arabic ×1
carrierwave ×1
image ×1
linux ×1
pixel ×1
r ×1
rubygems ×1