emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] insert picture feature request.


From: Stinky Wizzleteet
Subject: Re: [O] insert picture feature request.
Date: Wed, 25 May 2011 11:00:03 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4

Hi All,


I've looked into this as well and I found the following:

On X the "import" function from imagemagick is very versatile. It can capoture the entire screen, or a rectangle on the screen selected by the user, it is possible to retain that rectangle for subsequent grabs in the session by catching the verbose output of the import command.

On windows however, the import command exists in the imagemagick windows binaries, but it only grabs X sessions, not an MSwin screen, therefor it is useless. But, among all the screengrabutils for window out there I found something that could be of interest here, the Python PIL package allows for screengrabs *and* for clipboard dumping:

########## start python src
import os
import sys
import time
import Image
import ImageGrab
def ensure_dir(f):
    d = os.path.dirname(f)
    if not os.path.exists(d):
        os.makedirs(d)
#---------------------------------------------------------
#User Settings:
SaveDirectory=r'c:/Screengrabs'
#taking a screenshot is as simple as:
#img=ImageGrab.grab()

im= ImageGrab.grabclipboard()
savename='ScreenShot_'+time.strftime("%y%m%d_%H_%M_%S")+'.png'
saveas=os.path.join(SaveDirectory,savename)
print "saveas: %s" %saveas
ensure_dir(saveas)
if isinstance(im, Image.Image):
    im.save(saveas)
    print "image saved to %s"% (saveas)
else:
    print "not image in clipboard"

########## end python src

This could be extended to be multiplatform, as I understand that PIL's imagegrab does not work on X11 (at least it does not on my n900)

My 2 cents here..

wzzl.
On 7-5-2011 23:33, Mark S. wrote:
This is very close ... I think. The problem is that the file name needs to be 
formatted for Windows. Currently its formatted  using unix style forward 
slashes. The file name that is passed to irfan in the call process needs to be 
formatted with Windows style backslashes. Without this fix, irfan will complain 
that it doesn't recognize the file type. In other languages I could figure out 
how to do the replace sequence, but it would take me awhile in lisp. Is there a 
quick fix?

Thanks!
Mark

--- On Wed, 5/4/11, Russell Adams<address@hidden>  wrote:

From: Russell Adams<address@hidden>
Subject: Re: [O] insert picture feature request.
To: "Rainer Stengele"<address@hidden>
Date: Wednesday, May 4, 2011, 6:19 AM
On Wed, May 04, 2011 at 12:01:53PM
+0200, Rainer Stengele wrote:

i_view32.exe /capture=2
/convert=c:\capture_$U(%d%m%Y_%H%M%S).jpg

(defun org-screenshot ()
   "Take a screenshot into a time stamped
    unique-named file in the same directory
as
    the org-buffer and insert a link to this
file."
   (interactive)
   (setq filename
         (concat
          (make-temp-name
           (concat
(buffer-file-name)

   "_"

   (format-time-string

    "%Y%m%d_%H%M%S_")) ) ".png"))
   (call-process "i_view32.exe" nil nil nil

"/capture=2" (concat "/convert=" filename) )
   (insert (concat "[[" filename "]]"))
   (org-display-inline-images))

Does that work? Elisp is formatting the filename based on
the Org
buffer you're in and adding a timestamp.

------------------------------------------------------------------
Russell Adams
                 address@hidden

PGP Key ID:     0x1160DCB3
        http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F
66E8 1154 E018 1160 DCB3









reply via email to

[Prev in Thread] Current Thread [Next in Thread]