- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的要求是如果正在上传 pdf 文件,则将 pdf 转换为图像。到目前为止,这就是我所做的。
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
include CarrierWave::MimeTypes
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"#{PRIVATE_UPLOADS_PATH}/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
# def default_url
# # For Rails 3.1+ asset pipeline compatibility:
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
#
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
# end
process :set_content_type
process :set_model_ext_attributes
# Create different versions of your uploaded files:
version :large, if: :image? do
process :resize_and_pad => [800, 600]
end
version :thumb, if: :image? do
process :resize_and_pad => [100, 100]
end
version :normal, if: :pdf? do
process :efficient_conversion => [640, 960]
end
def efficient_conversion(width, height)
manipulate! do |img|
img.format("png") do |c|
c.fuzz "3%"
c.trim
c.resize "#{width}x#{height}>"
c.resize "#{width}x#{height}<"
end
img
end
end
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_white_list
%w(jpg jpeg gif png pdf)
end
def set_model_ext_attributes
model.display_filename ||= file.filename
model.content_type_cd = CONTENT_TYPES.rassoc(file.content_type).first if file.content_type
model.file_size = file.size
end
def content_type
CONTENT_TYPES.assoc(model.content_type_cd).last
end
# Override the filename of the uploaded files:
# Avoid using model.id or version_name here, see uploader/store.rb for details.
# def filename
# "something.jpg" if original_filename
# end
protected
def image?(new_file)
new_file.content_type.start_with? 'image/'
end
def pdf?(new_file)
new_file.content_type.end_with? '/pdf'
end
end
但我一直收到错误提示
MiniMagick::Error: Unable to format to png
from /Users/rkamat/.rvm/gems/ruby-1.9.3-p547/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:266:in `format'
在下面这一行
img.format("png") do |c|
任何关于这方面的帮助将不胜感激,因为我花了几个小时试图消除它。
我已经引用了载波上传中的文档以使其正常工作 https://github.com/carrierwaveuploader/carrierwave/wiki/Efficiently-converting-image-formats
最佳答案
如果你使用 RMagick
require 'RMagick'
pdf_file = Magick::ImageList.new('your_file.pdf')
PDF 是图像列表 ( more info with ImageMagick )。
关于ruby-on-rails - Carrierwave PDF to Image 使用 MiniMagick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968271/
一直在研究但未能查明问题:我正在关注 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 张“中等”尺寸的图像
我是一名优秀的程序员,十分优秀!