emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Alexander Vorobiev <alexander.vorobiev@gmail.com>
To: Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
Cc: Vitalie Spinu <spinuvit@gmail.com>,
	org-mode mailing list <emacs-orgmode@gnu.org>
Subject: Re: Help, I need to paste raw image from clipboard into emacs/orgmode
Date: Wed, 6 Nov 2013 09:28:05 -0600	[thread overview]
Message-ID: <CAGOCFPXtD6s+PrP88=tARDgCODph1DpmQzGHqry+3QmC8jAiuw@mail.gmail.com> (raw)
In-Reply-To: <CANtbJLEX3yepL=SuQG0RmUnhRr_LXLFXYoVdVNePqk4P8Ew7-Q@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4039 bytes --]

Hi Klaus,

I found the function very useful so I expanded it a little to have more
flexible image file names. First, I use the base name of the file in the
current buffer as a prefix to the image file name. Then I added an integer
buffer-local variable to be the image file name's suffix (preceded by an
underscore) which is incremented every time new image is pasted:

   #+begin_src emacs-lisp
     (defvar org-clipboard-image-suffix 0)
     (make-variable-buffer-local 'org-clipboard-image-suffix)
     (setq-default org-clipboard-image-suffix 0)

     (defun org-insert-clipboard-image ()
       (interactive)
       (incf org-clipboard-image-suffix)
       (let* ((image-file
               (concat (file-name-base (buffer-file-name))
                       "_"
                       (format "%d" org-clipboard-image-suffix)
                       ".png"))
              (exit-status
               (call-process "convert" nil nil nil
                             "clipboard:" image-file)))
         (org-insert-link nil (concat "file:" image-file) "")))
     #+end_src

It would be very convenient if there were a way to determine if the
clipboard contains an image, then use defadvice to call this function with,
say, org-yank. Unfortunately I couldn't find any emacs functions to query
properties of the content of the (Windows) clipboard. I only see
w32-get-clipboard-data which returns only text.

Regards,
Alex


On Fri, Jun 7, 2013 at 1:15 PM, Klaus-Dieter Bauer <
bauer.klaus.dieter@gmail.com> wrote:

> (defun my-org-insert-clipboard ()
>   (interactive)
>   (let* ((image-file "clipboard.png")
>  (exit-status
>   (call-process "convert" nil nil nil
> "clipboard:" image-file)))
>     (org-insert-link nil (concat "file:" image-file) "")
>     (org-display-inline-images)))
>
> That works for me (Emacs 24.3, Windows 7) though for practical use some
> more edge case handling ("don't insert on failure", "different name if file
> exists") will be wanted.
>
> kind regards, Klaus
>
>
> 2013/6/7 Vitalie Spinu <spinuvit@gmail.com>
>
>>
>> Thanks for the tip. Do you have an elisp piece that handles the image
>> insertion into org buffers?
>>
>> Thanks,
>>
>>     Vitalie
>>
>>  >> Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
>>  >> on Thu, 6 Jun 2013 19:16:26 +0200 wrote:
>>
>>  >     Dear All,
>>  >     Please Help,
>>  >     I need to paste raw image from clipboard into emacs/orgmode, I am a
>>  >     microsoft onenote user and I got used to take a lot of snapshots
>> and embed
>>  >     it into my notes, I think if I could know how to embed images
>> directly into
>>  >     emacs/orgmode from clipboard, I will switch to emacs very easily.
>>
>>  >     I searched the internet but unfortunately I didn't find the answer,
>>  >     Thanks a lot.
>>  >     Dodo
>>
>>  > Hello!
>>
>>  > While the original poster probably long since has implemented one of
>> the
>>  > previously suggested solutions (or given up) I thought I'd share a
>> more general
>>  > solution I found [1].
>>
>>  > ImageMagick's `convert' can use clipboard: as input file (don't know
>> if it works
>>  > as output file).
>>
>>  > convert clipboard: FILENAME-WITH-EXTENSION
>>
>>  > I tested it with the cygwin and native windows versions and both
>> worked.
>>
>>  > king regards, Klaus
>>
>>  > PS1: On Windows `convert.exe' might be shadowed by another executable,
>>  > especially C:\Windows\System32\convert.exe. In that case the PATH
>> variable
>>  > should be adjusted such that ImageMagick comes before
>> C:\Windows\system32. To
>>  > check what shadows the executable, you can run "where convert" in the
>>  > Windows-commandline.
>>  > PS2: On Windows only basic image-displaying-support is included
>> out-of-the-box.
>>  > To get full support, the easiest way is to install the full GnuWin32
>> tools
>>  > (which include the necessary image libraries) with the web-installer.
>>
>>  > ------
>>
>>  > [1] User "magick" in
>>  >
>> http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=7524&p=22859
>> .
>>
>>
>

[-- Attachment #2: Type: text/html, Size: 5922 bytes --]

  reply	other threads:[~2013-11-06 15:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-06 17:16 Help, I need to paste raw image from clipboard into emacs/orgmode Klaus-Dieter Bauer
2013-06-07  9:31 ` Vitalie Spinu
2013-06-07 18:15   ` Klaus-Dieter Bauer
2013-11-06 15:28     ` Alexander Vorobiev [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-07-20 14:59 Medhat Essmat
2011-07-24 18:26 ` suvayu ali
2011-07-24 20:11 ` Rainer Stengele

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGOCFPXtD6s+PrP88=tARDgCODph1DpmQzGHqry+3QmC8jAiuw@mail.gmail.com' \
    --to=alexander.vorobiev@gmail.com \
    --cc=bauer.klaus.dieter@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=spinuvit@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).