トップ «前の日記(2008-08-13) 最新 次の日記(2008-08-22)» 編集

3 日坊主日記


2008-08-20 [長年日記]

_ [ruby] RMagick 2.5.2 / ImageMagick 6.4.2 Q8

  • ImageMagick-6.4.2
  • gem rmagick-2.5.2

sample script:

$ cat im.rb
#!/usr/bin/ruby
require 'rubygems'
gem 'rmagick'
require 'RMagick'
img = Magick::ImageList.new('images/recipe/2008-08-20.jpg')
img = img.resize(100, 75)
img.write('2008-08-20.png')

ImageMagick:

$ ./configure --disable-static --with-modules --without-magick-plus-plus --with-quantum-depth=8
$ make
$ sudo make install

RMagick:

$ sudo gem install rmagick --verbose
$ ruby im.rb
/usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/lib/RMagick2.so: libgomp.so.1: shared object cannot be dlopen()ed - /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/lib/RMagick2.so (LoadError)
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
        from /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/lib/RMagick.rb:11
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from im.rb:4

うひょ。

RMagick:

$ sudo gem uninstall rmagick

ImageMagick:

$ sudo make uninstall

消してからやり直し。

ImageMagick:

$ ./configure --disable-static --with-modules --disable-openmp --without-magick-plus-plus --with-quantum-depth=8
$ make
$ sudo make install

RMagick:

$ sudo gem install rmagick --verbose
$ ruby im.rb

ok.

see:

_ [Rails] Shift_JIS on Rails

うちは普段Rails 1.2系でDB, viewのencodingはShift_JISです。

# config/environment.rb:
#...
Rails::Initializer.run do |config|
  #...
  # See Rails::Configuration for more options
  config.action_controller.default_charset = 'Shift_JIS'
  config.active_record.colorize_logging = false
end
#...
# Include your application configuration below
$KCODE = 'SJIS'

ちと面倒なのはAjaxなのだけど JavaScriptとの入出力はUTF-8で行うことだけ気をつければok。

試しに『Ajax on Rails』のchapter3で確認してみた。

# config/environment.rb:
#...
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION

これを有効にして(とりあえず 1.2.3 で試す)

# require 'jcode'
# require 'gettext/rails'

これは無効にする。

# app/controllers/application.rb:
class ApplicationController < ActionController::Base
  #...
  # init_gettext "ajaxrails"
end

これも無効にする。

UTF-8なviewは全てShift_JISに変換。

あとcharsetを変更。

# app/views/layouts/chapter3.rhtml:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <title>Ajax on Rails</title>
...

あと昔懐かしい end_form_tag でwarningが出るのでタグに書き換えるとかする。

日本語を reverse することにしよう。

# app/controllers/chapter3_controller.rb:
require 'nkf'

class Chapter3Controller < ApplicationController
  #...
  def reverse
    text = params[:text_to_reverse]
    text = NKF.nkf('-Ws -m0', text) if request.xhr?
    @reversed_text = text.scan(/./).reverse.join
    render :layout => false
  end

end

動作確認した環境:

(WinXP) IE 7.0, Safari 3.1.2
(Vista) IE 7.0, Firefox 2.0
(Mac OSX) Firefox 2.0, Safari 3.1.2
[]