プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

Gyazo x Dropboxで簡単スクリーンショット共有

開発中にGyazoは多様するのですが、お金を払わないと投稿画像を消せなかったりするため、すぐに消したい画像はDropboxのPublicディレクトリに入れて共有するなど、まあ良いかと思いつつ多少不便な感じで使っていました。


今回、Dropbox にスクリーンショットを保存する Gyazo サーバにインスパイアされて、もう少し簡単な方法でDropboxを活用してみました。

  • サーバーは立てない(Dropboxクライアントを使う)

Dropboxクライアントを利用すれば勝手にアップしてくれるので楽ちんです。

  • 画像取得後にブラウザオープン

同期完了まで404が出ますが即座にブラウザオープンするように。

  • URLをコピー

共有目的で使うためURLは毎回コピーしていました。
ということでこれを自動で。


修正内容ですが、Gyazo.app/Contents/Resources/script を下記のように書き換えるだけです。Serverディレクトリは不要なので削除します(というか削除しないとスクリプトが実行されるようで上手く行きませんでした)。

#!/usr/bin/env ruby

# capture png file
tmpfile = "/tmp/image_upload#{$$}.png"
imagefile = ARGV[1]

if imagefile && File.exist?(imagefile) then
  system "sips -s format png \"#{imagefile}\" --out \"#{tmpfile}\""
else
  system "screencapture -i \"#{tmpfile}\""
  if File.exist?(tmpfile) then
    system "sips -d profile --deleteColorManagementProperties \"#{tmpfile}\""
  end
end

if !File.exist?(tmpfile) then
  exit
end

# mv to dropbox
dropbox_dir = "~/Dropbox/Public/image"
dropbox_url = "http://dl.dropbox.com/u/339699/image"
filename = "#{Time.now.strftime("%Y%m%d_%H%M%S")}.png"

system "mv #{tmpfile} #{dropbox_dir}/#{filename}"
system "open #{dropbox_url}/#{filename}"
system "echo #{dropbox_url}/#{filename} | pbcopy"

File.delete(tmpfile)


dropbox_dir、dropbox_urlの辺りを変更すればそのまま使えると思います。