Class: Rixmap::Format::XPM::XPMImageIO
- Inherits:
-
ImageIO::BaseImageIO
- Object
- ImageIO::BaseImageIO
- Rixmap::Format::XPM::XPMImageIO
- Defined in:
- lib/rixmap/format/xpm.rb
Overview
XPM形式用入出力実装クラス.
XPM1とXPM2の出力を分けたり、読み込み時に自動判定したりします.
Class Method Summary collapse
-
.readable?(magic) ⇒ Boolean
指定データがXPM1またはXPM2で読み込めるかどうかを調べます.
-
.writable?(image) ⇒ Boolean
指定画像がXPM1またはXPM2で書き込めるかを判定します.
Instance Method Summary collapse
-
#decode(data, options = {}) ⇒ Rixmap::Image
画像をバイト列から復元します.
-
#encode(image, options = {}) ⇒ String
画像をバイト列にエンコードします.
-
#initialize(options = {}) ⇒ XPMImageIO
constructor
A new instance of XPMImageIO.
Methods inherited from ImageIO::BaseImageIO
#open, #read, #readable?, #save, #writable?, #write
Constructor Details
#initialize(options = {}) ⇒ XPMImageIO
Returns a new instance of XPMImageIO.
373 374 375 376 377 378 379 380 381 382 |
# File 'lib/rixmap/format/xpm.rb', line 373 def initialize( = {}) super() @version = :auto unless defined?(@version) # 書き込み時の指定とかどうしよう # インスタンスは初期化しておく @xpm1iio = XPM1ImageIO.new() @xpm2iio = XPM2ImageIO.new() end |
Class Method Details
.readable?(magic) ⇒ Boolean
指定データがXPM1またはXPM2で読み込めるかどうかを調べます.
XPM1形式が優先されます.
348 349 350 |
# File 'lib/rixmap/format/xpm.rb', line 348 def self.readable?(magic) return XPM1ImageIO.readable?(magic) || XPM2ImageIO.readable?(magic) end |
.writable?(image) ⇒ Boolean
指定画像がXPM1またはXPM2で書き込めるかを判定します.
XPM1形式が優先されます.
358 359 360 |
# File 'lib/rixmap/format/xpm.rb', line 358 def self.writable?(image) return XPM1ImageIO.writable?(image) || XPM2ImageIO.writable?(image) end |
Instance Method Details
#decode(data, options = {}) ⇒ Rixmap::Image
画像をバイト列から復元します.
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 |
# File 'lib/rixmap/format/xpm.rb', line 417 def decode(data, ={}) version = if [:version].nil? @version else [:version] end case version when 0, 1, :xpm1, :auto return @xpm1iio.decode(data, ) when 2, :xpm2 return @xpm2iio.decode(data, ) else raise NotImplementedError.new("XPM Version #{version} is not implemented") end end |
#encode(image, options = {}) ⇒ String
画像をバイト列にエンコードします.
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 |
# File 'lib/rixmap/format/xpm.rb', line 392 def encode(image, ={}) version = if [:version].nil? @version else [:version] end case version when 0, 1, :xpm1, :auto return @xpm1iio.encode(image, ) when 2, :xpm2 return @xpm2iio.encode(image, ) else raise NotImplementedError.new("XPM Version #{version} is not implemented") end end |