RMagick
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(RMagick);
*目次 [#s9d51154]
#contents
*関連ページ [#c9f83d31]
*参考情報 [#w81d82c4]
*概要 [#ydf5036d]
-RubyからImageMagickを利用するためのライブラリ。
-C言語ライブラリなのでビルドする際、ImageMagickのヘッダー...
-このためビルド時にエラーとなりがち。
-HomebrewなどでImageMagickライブラリが入れ替わった場合も...
-ImageListとImageを操作する。
*インストール [#md0b262f]
-CentOS 6の場合
yum install ImageMagick-devel
*基本的な使用方法 [#m1e9837f]
**画像を結合する [#r463dce1]
-ImageListを生成しmontageで結合する。画像の最後が出力ファ...
#pre{{
def concat_images(*images)
# 画像を結合して出力
images_files = images[0..images.length - 2];
file_name = images.last
image_final = Magick::ImageList.new(*images_files)
result = image_final.montage
result.write file_name
end
}}
**画像を結合し間に空白も追加する。 [#x71f0ddd]
-ImageListを生成しappendで結合する。spliceで空白を追加す...
#pre{{
def append_images(*images)
# 画像を結合し間に空白を追加して出力
images_files = images[0..images.length - 2];
file_name = images.last
image_final = Magick::ImageList.new(*images_files)
result = image_final.append(false) # 結合方向
width = result.columns
height = result.rows
puts width
puts height
# 間にスペースを追加する
padding = 10
if height > 1000
padding = 20
end
result = result.splice(width / 2, 0, padding, 0) # 画...
# 結果をファイルに書き出す
result.write file_name
end
}}
**画像を結合し透明色の色も指定する [#iab50f7b]
-appendでpngを結合すると背景色が黒になってしまう。白にし...
#pre{{
def append_images(*images)
#結合元の画像ファイル名
image_files = images[0..images.length - 2];
#出力画像名
file_name = images.last
#最終的な画像リスト
result_image_list = Magick::ImageList.new
image_files.each do |image_file|
#background_colorとflatten_imagesを組み合わせて背景色...
image_list = Magick::ImageList.new(image_file) {self....
image = image_list.flatten_images
result_image_list << image
end
#結果を結合
result = result_image_list.append(false)
result.write file_name
end
append_images(*ARGV)
}}
**オリジナル画像に余白を追加しセンタリングする [#yc4581e3]
-RMagick単体では結構困難?
-CarrierWaveの実装を参照にすると以下のようになるらしい。[...
#pre{{
require "rmagick"
module Converter
def self.resize_and_pad(img, new_img_path, width, heigh...
img.resize_to_fit!(width, height)
new_img = ::Magick::Image.new(width, height)
if background == :transparent
filled = new_img.matte_floodfill(1, 1)
else
filled = new_img.color_floodfill(1, 1, ::Magick::Pi...
end
# destroy_image(new_img)
filled.composite!(img, gravity, ::Magick::OverComposi...
# destroy_image(img)
# filled = yield(filled) if block_given?
# filled
filled.write new_img_path
end
end
srcfile = ARGV[0]
dstfile = ARGV[1]
puts "srcfile=#{srcfile} dstfile=#{dstfile}"
img = Magick::Image.read(srcfile).first
#img = img.resize_and_pad(200, 100, 'red', Magick::Cente...
#img.write(dstfile)
Converter::resize_and_pad(img, dstfile, 200, 100, 'red', ...
}}
*トラブルシューティング [#qf5a7b34]
**RMagickがmacOS High Sierraにインストールできない [#y055...
-HomebrewでインストールできるImageMagickはver 7だが、RMag...
-以下のようにしてインストールする。
#pre{{
$ brew uninstall imagemagick
$ brew install imagemagick@6
$ PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgcon...
}}
-rmagickを依存関係でインストールするgemをインストールする...
$ PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgco...
**RMagickを使っているRubyプログラムでLibrary not loadedエ...
-ImageMagickをアップデートした場合、以下のようなエラーが...
#pre{{
/Users/sora/.anyenv/envs/rbenv/versions/2.4.0/lib/ruby/2....
}}
-一端rmagicをuninstallしてインストールしなおせばよい。
#pre{{
gem uninstall rmagick
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfi...
}}
終了行:
&tag(RMagick);
*目次 [#s9d51154]
#contents
*関連ページ [#c9f83d31]
*参考情報 [#w81d82c4]
*概要 [#ydf5036d]
-RubyからImageMagickを利用するためのライブラリ。
-C言語ライブラリなのでビルドする際、ImageMagickのヘッダー...
-このためビルド時にエラーとなりがち。
-HomebrewなどでImageMagickライブラリが入れ替わった場合も...
-ImageListとImageを操作する。
*インストール [#md0b262f]
-CentOS 6の場合
yum install ImageMagick-devel
*基本的な使用方法 [#m1e9837f]
**画像を結合する [#r463dce1]
-ImageListを生成しmontageで結合する。画像の最後が出力ファ...
#pre{{
def concat_images(*images)
# 画像を結合して出力
images_files = images[0..images.length - 2];
file_name = images.last
image_final = Magick::ImageList.new(*images_files)
result = image_final.montage
result.write file_name
end
}}
**画像を結合し間に空白も追加する。 [#x71f0ddd]
-ImageListを生成しappendで結合する。spliceで空白を追加す...
#pre{{
def append_images(*images)
# 画像を結合し間に空白を追加して出力
images_files = images[0..images.length - 2];
file_name = images.last
image_final = Magick::ImageList.new(*images_files)
result = image_final.append(false) # 結合方向
width = result.columns
height = result.rows
puts width
puts height
# 間にスペースを追加する
padding = 10
if height > 1000
padding = 20
end
result = result.splice(width / 2, 0, padding, 0) # 画...
# 結果をファイルに書き出す
result.write file_name
end
}}
**画像を結合し透明色の色も指定する [#iab50f7b]
-appendでpngを結合すると背景色が黒になってしまう。白にし...
#pre{{
def append_images(*images)
#結合元の画像ファイル名
image_files = images[0..images.length - 2];
#出力画像名
file_name = images.last
#最終的な画像リスト
result_image_list = Magick::ImageList.new
image_files.each do |image_file|
#background_colorとflatten_imagesを組み合わせて背景色...
image_list = Magick::ImageList.new(image_file) {self....
image = image_list.flatten_images
result_image_list << image
end
#結果を結合
result = result_image_list.append(false)
result.write file_name
end
append_images(*ARGV)
}}
**オリジナル画像に余白を追加しセンタリングする [#yc4581e3]
-RMagick単体では結構困難?
-CarrierWaveの実装を参照にすると以下のようになるらしい。[...
#pre{{
require "rmagick"
module Converter
def self.resize_and_pad(img, new_img_path, width, heigh...
img.resize_to_fit!(width, height)
new_img = ::Magick::Image.new(width, height)
if background == :transparent
filled = new_img.matte_floodfill(1, 1)
else
filled = new_img.color_floodfill(1, 1, ::Magick::Pi...
end
# destroy_image(new_img)
filled.composite!(img, gravity, ::Magick::OverComposi...
# destroy_image(img)
# filled = yield(filled) if block_given?
# filled
filled.write new_img_path
end
end
srcfile = ARGV[0]
dstfile = ARGV[1]
puts "srcfile=#{srcfile} dstfile=#{dstfile}"
img = Magick::Image.read(srcfile).first
#img = img.resize_and_pad(200, 100, 'red', Magick::Cente...
#img.write(dstfile)
Converter::resize_and_pad(img, dstfile, 200, 100, 'red', ...
}}
*トラブルシューティング [#qf5a7b34]
**RMagickがmacOS High Sierraにインストールできない [#y055...
-HomebrewでインストールできるImageMagickはver 7だが、RMag...
-以下のようにしてインストールする。
#pre{{
$ brew uninstall imagemagick
$ brew install imagemagick@6
$ PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgcon...
}}
-rmagickを依存関係でインストールするgemをインストールする...
$ PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgco...
**RMagickを使っているRubyプログラムでLibrary not loadedエ...
-ImageMagickをアップデートした場合、以下のようなエラーが...
#pre{{
/Users/sora/.anyenv/envs/rbenv/versions/2.4.0/lib/ruby/2....
}}
-一端rmagicをuninstallしてインストールしなおせばよい。
#pre{{
gem uninstall rmagick
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfi...
}}
ページ名: