Skip to content

Instantly share code, notes, and snippets.

@campanalbero
campanalbero / gist:6672887
Last active December 23, 2015 17:59
カレントフォルダの全JPGファイルをコンソールに表示
Dir.glob('*.JPG') do |f|
puts f
end
@campanalbero
campanalbero / gist:6672923
Last active December 23, 2015 17:59
DSC_2315.JPG の EXIF の時刻を表示date_time_original を date_timeとすると、 EXIF でなくファイルのタイムスタンプになるようだ。
require 'rubygems'
require 'exifr'
puts EXIFR::JPEG::new('DSC_2315.JPG').date_time_original
@campanalbero
campanalbero / gist:6673860
Created September 23, 2013 17:14
カレントフォルダのJPGファイルのEXIFを読み取って、 yyyy-mm-dd 形式のフォルダを作って、 そこにJPGファイルを移動する
require 'rubygems'
require 'exifr'
Dir.glob('*.JPG') do |f|
exif_time = EXIFR::JPEG::new(f).date_time_original
yyyymmdd = exif_time.strftime('%Y-%m-%d')
Dir::mkdir(yyyymmdd) unless FileTest.exist?(yyyymmdd)
File.rename(f, yyyymmdd + '/' + f)
end
@campanalbero
campanalbero / gist:6703524
Created September 25, 2013 18:03
SVG による簡易日本地図
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Japan</title>
</head>
<body>
<svg>
<rect x="320" y="0" fill="#ffff00" stroke="#ff0000" width="150" height="150"/><!--北海道-->
<rect x="0" y="320" fill="#ffff00" stroke="#ff0000" width="100" height="200"/><!--九州-->
@campanalbero
campanalbero / gist:6924815
Last active December 25, 2015 05:29
ImageMagick を Ruby から使う。フォルダ内の png をトリミングして、 tmp フォルダに同名ファイルで保存する。
require 'rubygems'
require 'mini_magick'
Dir.glob('*.png') do |f|
image = MiniMagick::Image.open(f);
image.crop("752x422+229+206")
image.write('tmp/' + f)
end
@campanalbero
campanalbero / gist:6953766
Last active December 25, 2015 09:28
フォルダ内のファイルのMD5を計算して、ハッシュ値とファイル名を記録する。同じハッシュ値(コピーされたファイル)があれば、ファイル名をカンマ区切りで追記する。
require 'digest/md5'
hash = Hash.new {}
Dir.glob('*') do |f|
digest = Digest::MD5.file(f).to_s
if hash[digest] == nil then
hash.store(digest, f)
else
hash.store(digest, hash[digest] + ", " + f)
end
end
@campanalbero
campanalbero / gist:9233245
Created February 26, 2014 16:40
Nikon の raw ファイルの exif のようなところから、撮影日を得る
require 'rubygems'
require 'mini_exiftool'
Dir.glob(['*.NEF']) do |f|
photo = MiniExiftool.new(f)
puts photo.DateTimeOriginal
end
@campanalbero
campanalbero / gist:2a80b7025c4d33cb2432
Created September 2, 2014 17:19
ruby で exiftool を使って、FROM_FILE の EXIF データを TO_FILE に全部コピペする
require 'mini_exiftool'
exif = MiniExiftool.new(TO_FILE)
exif.copy_tags_from(FROM_FILE, 'all')
exif.save
@campanalbero
campanalbero / gist:7a3001777911aea88fa3
Created September 2, 2014 17:37
FROM フォルダ以下のファイルを再帰的にパス順に出力する(文字同士の比較はバイトコード)
Dir.glob(FROM + '**/*').sort{|a, b| a <=> b}.each do |f|
puts f
end
# 順場関係なしに全部出力したいだけなら以下の通り
# Dir.glob(FROM + '**/*') do |f|
# puts f
# end
@campanalbero
campanalbero / gist:1448554f77e8884af886
Created September 17, 2014 19:02
sequel で DB から読み込み
require 'rubygems'
require 'sequel'
require 'pp'
DB = Sequel.sqlite('photo.db')
items = DB["select * from photos where datetime(date_time_original) > datetime('2014-01-01 00:00:00')"].all
pp items