ubuntu で gyazo を使う。

シェアする

Linux でも gyazo 使いたいなーと gyazo の公式の Linux のリンクを押したら繋がらなかったのでちょっとぐぐってどうにかした。公式ツールじゃないのでいつ使えなくなるかはわからないけど今使えるから良いでしょう。

Sponsored Links

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も表示されます。

gyazo on ubuntu

便利!

Sponsored Link

シェアする

フォローする