Linux でも gyazo 使いたいなーと gyazo の公式の Linux のリンクを押したら繋がらなかったのでちょっとぐぐってどうにかした。公式ツールじゃないのでいつ使えなくなるかはわからないけど今使えるから良いでしょう。
gyazoの導入方法
[TUT]How to install Gyazo の記事を参照しました。
まず以下のものをインストールします。
$ sudo apt-get install ruby
$ sudo apt-get install xclip
$ sudo apt-get install imagemagick
スクリプトは Ruby で書かれてます。あとはクリップボードを扱う為の xclip と画像をいじるための imagemagick です。
次に好きなエディタを開いて以下のソースコードをコピペします。
保存する際は gyazo.rb という名前がわかりやすくて良いと思います。
#!/usr/bin/env ruby
# setting
browser_cmd = 'firefox'
clipboard_cmd = 'xclip'
require 'net/http'
# get id
idfile = ENV['HOME'] + "/.gyazo.id"
id = ''
if File.exist?(idfile) then
id = File.read(idfile).chomp
end
# capture png file
tmpfile = "/tmp/image_upload#{$$}.png"
imagefile = ARGV[0]
if imagefile && File.exist?(imagefile) then
system "convert '#{imagefile}' '#{tmpfile}'"
else
system "import '#{tmpfile}'"
end
if !File.exist?(tmpfile) then
exit
end
imagedata = File.read(tmpfile)
File.delete(tmpfile)
# upload
boundary = '----BOUNDARYBOUNDARY----'
HOST = 'gyazo.com'
CGI = '/upload.cgi'
UA = 'Gyazo/1.0'
data = <<EOF
--#{boundary}\r
content-disposition: form-data; name="id"\r
\r
#{id}\r
--#{boundary}\r
content-disposition: form-data; name="imagedata"; filename="gyazo.com"\r
\r
#{imagedata}\r
--#{boundary}--\r
EOF
header ={
'Content-Length' => data.length.to_s,
'Content-type' => "multipart/form-data; boundary=#{boundary}",
'User-Agent' => UA
}
env = ENV['http_proxy']
if env then
uri = URI(env)
proxy_host, proxy_port = uri.host, uri.port
else
proxy_host, proxy_port = nil, nil
end
Net::HTTP::Proxy(proxy_host, proxy_port).start(HOST,80) {|http|
res = http.post(CGI,data,header)
url = res.response.body
puts url
if system "which #{clipboard_cmd} >/dev/null 2>&1" then
system "echo -n '#{url}' | #{clipboard_cmd}"
end
system "#{browser_cmd} '#{url}'"
# save id
newid = res.response['X-Gyazo-Id']
if newid and newid != "" then
if !File.exist?(File.dirname(idfile)) then
Dir.mkdir(File.dirname(idfile))
end
if File.exist?(idfile) then
File.rename(idfile, idfile+Time.new.strftime("_%Y%m%d%H%M%S.bak"))
end
File.open(idfile,"w").print(newid)
end
}
browser_cmd = 'firefox' とある場所は gyazo で画像をアップロードした後に開くブラウザを指定しています。もし Chromium を使用している場合は browser_cmd = 'chromium-browser' と指定しましょう。
最後のこのスクリプトに実行権限を与えます。
$ chmod +x gyazo.rb
これで準備OKです。早速実行。
$ ./gyazo.rb
http://gyazo.com/495970f596e669c3b7fcaf37323f755c
実行するとカーソルが十字になります。ドラッグして範囲指定するとそのまま Gyazo のサーバへアップロードします。アップロード後はそのURLでブラウザが開され、ターミナルから実行した場合はアップロード後のURLも表示されます。
便利!
コメント
[…] http://loumo.jp/wp/archive/20111201194237/ […]
[…] http://loumo.jp/wp/archive/20111201194237/より引用。こいつらが関係している可能性あるので、入れておいていいと思う。全部コピーして貼り付けていくだけだ。コンソールで遊ぶのは楽しいので(地獄のSE道でもあるらしいがw)積極的にコンソールでコマンドを打っていこう。 […]