Pull to refresh

Быстрая публикация скриншотов

Reading time2 min
Views5.3K
Постить скриншоты довольно заморочно если всё делать руками. Но возможен и более лёгкий сценарий:
1) жму Alt+Ctrl+S
2) появляется редактор с готовым скриншотом
3) обрезаю картинку, закрываю редактор
4) картинка сама загружается; ссылка на картинку оказывается в буфере обмена

Как это сделать — для тех кто знает что такое bat-файлы и сумеет установить пару Python-модулей.

На рабочем столе создаёте ярлык на файл screenshot.bat (ниже) и настраиваете запуск в свёрнутом виде, чтобы консоль не мешалась на скриншоте. Ярлыку же нужно назначить глобальное клавиатурное сочетание навроде Ctrl+Alt+S.

Далее в «Program Files» (например) следует создать 5 файлов, большинство из которых полезны и сами по себе (особенно clipboard.bat).

Файл screenshot.bat — координирует всю работу:

@rem takes a screenshot
@rem allows a userr to editt it
@rem upload image onto server
@rem puts the server link into clipboard

SET PNG=%TEMP%\screenshot.png
SET EDITOR="C:\Program Files\XnView\XnView.exe"
SET UPLOADER=fp.bat

c:\python26\python.exe screenshot.py %PNG%
%EDITOR% %PNG%
%UPLOADER% %PNG%


Файл screenshot.py — делает скриншот и сохраняет его в заданный файл:

# Takes a screenshot and saves it to a file specified.
# Requires Python Imging Library: http://www.pythonware.com/products/pil/
import sys
import ImageGrab # PIL
ImageGrab.grab().save(sys.argv[1])


Файл clipboard.bat — простая обёртка для скрипта пониже:

python clipboard.py

Файл clipboard.py — копирует текст из входного потока в буфер обмена:

# requires pywin32 module: http://sourceforge.net/projects/pywin32/files/
import sys
import win32clipboard
def setClipboard(text):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(win32clipboard.CF_TEXT, text) 
    win32clipboard.CloseClipboard()
text = sys.stdin.read()
print text
setClipboard(text)


Файл fp.bat — загружает изображения на сервер — fastpic.ru в данном случае:

@echo off
@rem upload images to fastpic.ru
@rem requires zenden image uploader: http://code.google.com/p/image-uploader/downloads/list
@rem    choose the CLI version like: zenden-image-uploader-CLI-XXX-win32.7z

@rem zenden works from its own directory only
@rem converting all filenames into the absolute form
SET FILES=
:loop_begin
if "%~1"=="" GOTO loop_end
	SET FILES=%FILES% "%~f1"
	shift
	goto loop_begin
:loop_end

C:
cd C:\Portable\zenden-image-uploader
imgupload --server fastpic.ru %FILES% | clipboard


К сожалению, особенности питоньей платформы, не позволяют дать ссылку на 100% готовый архив — два модуля придётся скачать и установить руками:
pywin32
Python Imging Library
И вот такой аплоадер файлов на самые разные сервера:
zenden image uploader (CLI-версия)

Если кто знает как поставлять модули Питона в архиве и не заморачивать людей поиском, скачкой и установкой модулей — прошу дать знать, ибо разрабатывается всё это несложно, но передать разработанное людям — проблема. Можно целую директорию с Питоном копировать, конечно…

В текущем виде решение работает только под Windows. Если переписать копирование текста в буфер обмена и найти аналог загрузчику картинок, то будет работать и в других OS.
Tags:
Hubs:
Total votes 20: ↑13 and ↓7+6
Comments30

Articles