标签: rmagick

在Rails 3中使用Paperclip安装RMagick的问题

我正在尝试在rails中使用paperclip,当我正在进行"bundle install"时,我收到以下错误:

无法安装RMagick 2.13.1.在/ usr/local/mysql/bin中找不到Magick-config:/ usr/local/bin:/ usr/local/sbin:/ usr/bin:/ bin:/ usr/sbin:/ sbin:/ usr/local/bin目录:在/ usr /本地/ git的/ bin中:在/ usr/X11/bin中:/Users/seanhinton/.rvm/bin

我想知道的是如何在我的机器上安装RMagick(我需要的是什么?)(它是OSX 10.6)?

干杯!

gem ruby-on-rails rmagick paperclip ruby-on-rails-3

3
推荐指数
1
解决办法
3575
查看次数

Paperclip&RMagick - PDF和重命名的3页缩略图

我想上传pdf文件,并创建(作为单独的文件)缩略图图像,其中PDF的前3页水平对齐.我设法用RMagick做一个Paperclip处理器来生成该文件,但问题是:我希望单独的文件(带有缩略图样式的文件)具有正确的扩展名(例如jpg)而不是原始的pdf.如果我仍然可以通过使用带样式的url方法获得正确的路径,那将是很好的,例如:

>> attachment.url
=> "/some/path/id/original/test.pdf" # original file
>> attachment.url(:pdf_thumbnail)
=> "/some/path/id/pdf_thumbnail/test.jpg" # jpg file, not pdf
Run Code Online (Sandbox Code Playgroud)

一些代码:

处理器

module Paperclip
  class PdfThumbnail < Processor

    def initialize(file, options = {}, attachment = nil)
      super
      @file = file
      @instance = options[:instance]
      @current_format   = File.extname(@file.path)
      @basename         = File.basename(@file.path, @current_format)
    end

    def make
      dst = Tempfile.new([@basename, 'jpg'].compact.join("."))
      dst.binmode
      pdf = ::Magick::ImageList.new(File.expand_path(@file.path))
      image = pdf[0..2].append(false)
      image.format = 'JPG'
      image.write(File.expand_path(dst.path))
      dst.flush
      return dst
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

型号(提取)

has_attached_file :file, :styles => {:pdf_thumbnail => ""}, :processors …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rmagick paperclip

3
推荐指数
1
解决办法
2707
查看次数

imagemagick将gif中的工件留给jpg列表转换

ImageMagick将gif分成jpgs,但其中一些有白色像素,有些则没有.

convert -strip tree.gif tree.jpg
Run Code Online (Sandbox Code Playgroud)

将gif拆分为86 jpgs.这是#68和#69.

#68

在此输入图像描述

和#69

在此输入图像描述

和有问题的GIF:

http://i.stack.imgur.com/yTBnJ.gif

约1/3有类似的编码问题.

convert -version
Version: ImageMagick 6.6.9-7 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP   

uname -a
Linux paul-Pangolin-Performance 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

rmagick imagemagick image-processing

3
推荐指数
1
解决办法
2046
查看次数

OS X Lion,ImageMagick和RMagic - 如何安装?

我正在尝试安装ImageMagick和RMagic,因为它们在OS X Lion升级后无法运行.当我跑

brew install imagemagick
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Error: You must `brew link libpng' before imagemagick can be installed
Run Code Online (Sandbox Code Playgroud)

但是当我brew link libpng按照错误消息中提到的那样运行时,我会得到:

Error: You must `brew link libpng' before imagemagick can be installed
Radek-Macs-MacBook-Pro-3:sharelock-staging radek$ brew link libpng
Linking /usr/local/Cellar/libpng/1.5.13... Warning: Could not link libpng. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/libpng/1.5.13/include/pnglibconf.h
/usr/local/include/pnglibconf.h may already exist.
/usr/local/include may not be writable.
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?我两天没有成功地解决了RMagic的事情......这是一场纯粹的噩梦......

ruby homebrew ruby-on-rails rmagick osx-lion

3
推荐指数
1
解决办法
5801
查看次数

将PDF转换为JPG时质量低

我正在尝试使用Imagemagic(RMAgick)将PDF文档转换为图像.原始PDF也是从图像创建的(不是原生矢量PDF).

image = Magick::Image::from_blob(original_pdf) { self.format = 'PDF' }
image[0].format = 'JPG'
image[0].to_blob
image[0].write(to_file.jpg) {
  self.quality = 100
  self.density = 144
}
Run Code Online (Sandbox Code Playgroud)

但是在打印时,产生的图像质量太低.原始PDF同时具有良好的质量.我正在尝试使用这些选项

self.quality = 100
self.density = 144
Run Code Online (Sandbox Code Playgroud)

或使用PNG而不是JPG,但所有这些都不起作用,只增加kb中的图像大小).

ruby pdf rmagick imagemagick

3
推荐指数
1
解决办法
2866
查看次数

Carrierwave重新创建版本

我正在使用carrierwave和rmagick来处理我的图片上传.我现在在image_uploader.eb中添加了一个新版本(smallthumb):

class ImageUploader < CarrierWave::Uploader::Base

  include CarrierWave::RMagick
  storage :file

  def store_dir
    "uploads/images"
  end

  version :thumb do
    process :resize_to_fill => [250, 250]
  end

  version :smallthumb do
    process :resize_to_fill => [70, 70]
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个名为"image"的模型,其中安装了图像上传器:

class Image < ActiveRecord::Base
  attr_accessible :date, :description, :name, :size, :image, :article_ids
  has_and_belongs_to_many :articles
  mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)

我已经读过我需要调用recreate_versions !,但是我不明白我需要在哪里调用这个操作以及如何调用.我在公共/上传/图像的实时服务器上有我的图像.如何重新创建所有这些图像的版本(在我的开发机器和实时服务器上),以便我也可以使用图像的小型版本?

ruby-on-rails rmagick carrierwave ruby-on-rails-4

3
推荐指数
1
解决办法
5064
查看次数

Rmagick在水印中设置透明度的不透明度

我正在尝试创建具有不同不透明度值的水印(从0不透明值到1完全透明).

我在ruby中有以下RMagick方法:

  # 0 = opaque (Magick::OpaqueOpacity) 1= transparent (Magick::TransparentOpacity)
  def watermark(opacity = 0.99, size = 'm')
    manipulate! do |img|
      logo = Magick::Image.read("#{Rails.root}/app/assets/images/watermark#{size}.png").first
      logo.alpha(Magick::ActivateAlphaChannel) 
      logo.opacity = (1 - opacity.to_f) * Magick::QuantumRange
      img.alpha(Magick::ActivateAlphaChannel)
      img = img.composite(logo, Magick::NorthWestGravity, 0, 0, Magick::OverCompositeOp)
    end
  end
Run Code Online (Sandbox Code Playgroud)

我的问题是它似乎工作,但复合模式或alpha复合或设置不透明度或alpha失败,因为我在图像中得到黑色透明度.例如,如果我的水印是带有文字的完全透明的图像,我将其放在汽车图像上,那么我会得到一个带有水印的更暗或夜间图像,因此水印的背景不能正确混合.

有没有正确设置水印图像中不透明度的建议?也许有一些解决水印的方法?

编辑:添加图像示例:

http://uppix.com/f-watermarkg53925b100016ab8e.png(水印) http://oi62.tinypic.com/2us8rxl.jpg(基本图像) http://oi60.tinypic.com/2pt6mg3.jpg(组合物)

ruby watermark image rmagick imagemagick

3
推荐指数
1
解决办法
1811
查看次数

如何向图像添加文字?

我想用RMagick在我的图像上添加文字.这是我的代码:

version :thumb do
  process :resize_to_limit => [400, 300]
  process :addt
end

def addt
    manipulate! do |img|
      title = Magick::Draw.new
      img = title.annotate(img, 0,0,0,40, 'test') {
          self.font_family = 'Helvetica'
          self.fill = 'white'
          self.stroke = 'transparent'
          self.pointsize = 32
          self.font_weight = Magick::BoldWeight
          self.gravity = Magick::CenterGravity
      }

    end
end
Run Code Online (Sandbox Code Playgroud)

这段代码的问题在于它完全阻止了我的应用程序.我无法打开我的网站的任何其他部分,无法关闭我的服务器进程.我需要完全杀死服务器进程才能再次启动应用程序.

可能有什么问题?

watermark ruby-on-rails rmagick ruby-on-rails-4

3
推荐指数
1
解决办法
3282
查看次数

无法安装RMagick 2.15.4.找不到MagickWand.h

当我尝试安装rmagic时,它显示以下错误

ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/Users/***/.rvm/rubies/ruby-2.2.3/bin/ruby -r ./siteconf20170814-
44982-1i5w4mc.rb extconf.rb
checking for gcc... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.15.4. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries …
Run Code Online (Sandbox Code Playgroud)

ruby install rmagick

3
推荐指数
1
解决办法
894
查看次数

R:将3D矩阵转换/读取为"魔法"对象,反之亦然

我希望使用该magick软件包获得出色的图像处理功能.通过这里看,我似乎无法找到如何将3D矩阵(宽x高x通道)转换为magick我可以进一步操作的对象,反之亦然.

  • 没有as.magick功能
  • as.matrix功能不起作用

但我想要的是:

height <- 100
width <- 80
X <- array(runif(height * width * 3, min = 0, max = 255), c(height, width, 3))

magick::as.magick(X) %>% magick::image_scale("500x400")
Run Code Online (Sandbox Code Playgroud)

(显然我可以将矩阵写成磁盘作为图像,然后用它读取magick::image_read,这将是一种过度杀伤)

我错过了什么?

r rmagick imagemagick magick-r-package

3
推荐指数
1
解决办法
1256
查看次数