aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2009-07-24 15:40:17 -0400
committerRalph Amissah <ralph@amissah.com>2009-07-24 16:01:13 -0400
commit39e72afa0efa19a0dd94cff40ecd465162c3d379 (patch)
tree2a1b290e1e7b356fe0f984f5b6149cb06bb76495 /lib/sisu
parentmanifest, include book index if available (diff)
dal images, if no rmagick, system call imagemagick directly if available
Diffstat (limited to 'lib/sisu')
-rw-r--r--lib/sisu/v1/dal_images.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/lib/sisu/v1/dal_images.rb b/lib/sisu/v1/dal_images.rb
index 621ac986..67893025 100644
--- a/lib/sisu/v1/dal_images.rb
+++ b/lib/sisu/v1/dal_images.rb
@@ -65,16 +65,21 @@ module SiSU_images
data=@data
tuned_file=[]
@rmgk=false
- if SiSU_Env::Info_settings.new.program?('rmagick'); @rmgk=SiSU_Env::Load.new('RMagick').prog
- else tell=SiSU_Screen::Ansi.new(@md.cmd,'use of RMagick is not enabled in sisurc.yml')
- tell.warn if @md.cmd =~/[vVM]/
+ imagemagick_=SiSU_Env::Info_settings.new.program?('rmagick')
+ if imagemagick_
+ @rmgk=SiSU_Env::Load.new('RMagick').prog
+ else
+ if @md.cmd =~/[vVM]/
+ tell=SiSU_Screen::Ansi.new(@md.cmd,'use of RMagick is not enabled in sisurc.yml')
+ tell.warn
+ end
end
data.each do |para|
para.strip!
if para =~/#{Mx[:lnk_o]}\s*\S+\.(?:png|jpg|gif)(?:\s*|\s+.+)?#{Mx[:lnk_c]}(?:(?:https?|file|ftp):\S+|image)/
if para !~/#{Mx[:lnk_o]}\s*\S+\.(?:png|jpg|gif)\s+\d+x\d+\s+/
m=/#{Mx[:lnk_o]}\s*(\S+\.(?:png|jpg|gif))/
- if @rmgk
+ if imagemagick_
imgs=para.scan(m).flatten
images=imgs.each do |image|
dir=SiSU_Env::Info_env.new(@md.fns)
@@ -84,8 +89,18 @@ module SiSU_images
break if FileTest.exist?("#{image_path}/#{image}")
end
if FileTest.exist?("#{image_path}/#{image}")
- img=Magick::ImageList.new("#{image_path}/#{image}")
- img_col,img_row=img.columns,img.rows
+ if @rmgk
+ img=Magick::ImageList.new("#{image_path}/#{image}")
+ img_col,img_row=img.columns,img.rows
+ else
+ if @md.cmd =~/[vVM]/
+ tell=SiSU_Screen::Ansi.new(@md.cmd,'RMagick not present, will attempt to use imagemagick (identify) directly')
+ tell.warn
+ end
+ imgsys=`identify #{image_path}/#{image}`.strip #system call
+ img_col,img_row=/(\d+)x(\d+)/m.match(imgsys)[1,2]
+ img_col,img_row=img_col.to_i,img_row.to_i
+ end
if img_col > img_row #landscape
if img_col> 640 #480
img_col=640 #480