Как скопировать изображение, получить путь назад при вставке в файл ввода?

3215
Alexander Torstling

Иногда я получаю специальные сообщения об ошибках от клиентов, которые мне нужно передать на наш онлайн-трекер ошибок. Хорошо работает для текста, но картинки утомительны.

Я ищу решение для копирования и вставки изображений из документов (например, листов Excel) таким образом, чтобы при вставке изображения в файл (или текстовый ввод) на HTML-странице файл автоматически записывался на диск. (tmp dir) и путь, записанный в поле ввода файла.

Этот вопрос связан с прямой вставкой изображения буфера обмена в сообщение Gmail, но я хотел бы спросить, есть ли решение, использующее только локальную программу. Я заинтересован в решениях для всех операционных систем.

8
Я думаю, что это невозможно без стороннего программного обеспечения. ukanth 14 лет назад 0
Стороннее программное обеспечение не является проблемой - я просто хотел бы знать, существует ли такое программное обеспечение. Alexander Torstling 14 лет назад 0
Если никто не найдет такой, я сделаю один .. Для меня будет достаточно решения Windows. Pavel Radzivilovsky 14 лет назад 0
Похоже, что AutoHock может сделать, хотя я должен разобраться, как. Звучит как отличная идея. Phoshi 14 лет назад 1

5 ответов на вопрос

3
Pavel Radzivilovsky

Хорошо, ребята, это то, что я сделал.

using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing;  namespace ClipSave { class Program { [STAThread] public static void Main() { if (Clipboard.GetDataObject() != null) { IDataObject data = Clipboard.GetDataObject();  if (data.GetDataPresent(DataFormats.Bitmap)) { Image image = (Image)data.GetData(DataFormats.Bitmap, true); string file = System.Windows.Forms.Application.CommonAppDataPath + "\\ClipSaveImage.png"; image.Save(file, System.Drawing.Imaging.ImageFormat.Png); Clipboard.SetText(file);  } else MessageBox.Show("Copy valid image first"); } else MessageBox.Show("Copy image first"); } } } 

Скомпилировал его в EXE, добавил к нему ярлык меню запуска с помощью горячих клавиш Ctrl + Shift + C. Затем он копирует текущее изображение в буфер обмена в файл и помещает путь к файлу в буфер обмена.

2
Ed Brannin

Этот поток AutoHotKey имеет скрипт AutoHotKey для создания снимка экрана. Он включает в себя источник для тривиальной программы .Net 1.1 для сохранения буфера обмена в PNG. Вы хотели бы иметь несколько других модификаций:

  • Сохраните изображение в другую папку с именем лучше, чем image.png
  • Скопируйте путь к новому изображению в буфер обмена

Эти команды AutoHotKey Clipboard еще один способ доступа к этим данным, хотя программа, чтобы получить его данные изображения, будет немного сложнее.

1
Jason

Не уверен, отвечаю ли я на ваш вопрос. но вы можете попробовать клипмен. это поможет вам скопировать все и оставить в стороне, пока вы не выберете его обратно один за другим. Клипман, источник CNET

0
Tom Wijsman
  • Щелкните правой кнопкой мыши изображение и сохраните его?
  • Перетащите изображение в папку?
  • Использовать Ножницы и сохранить их оттуда?

Эти три метода позволят вам довольно быстро сохранить файл. Проводник всегда будет перемещаться в одну и ту же папку, поэтому быстрое сохранение или загрузка файла также не будет проблемой ...

Прямая функция буфера обмена была задана ранее и не удалось .

Изображение не из Интернета. Это больше, чем щелчок правой кнопкой мыши. Плюс мне не нужно много подряд. Иногда мне это нужно для многих людей на многих станциях. Точный вариант использования - добавить картинку в Wiki-сайт fogbugz. Pavel Radzivilovsky 14 лет назад 0
Я не понимаю этого ... Вы можете просто щелкнуть правой кнопкой мыши изображение в Word или Excel и нажать «Сохранить это изображение». Если буфер обмена не работает, самый быстрый способ - использовать один из вышеперечисленных методов или попросить кого-нибудь написать дополнение для Word или Excel, которое добавляет правильный пункт меню для прямой загрузки в fogbugz. Tom Wijsman 14 лет назад 0
0
ghoppe

Я не знаком с Windows, но так как вы попросили решения для всех операционных систем, у меня есть решение для appleScript для Mac OS X, которое я протестировал, скопировав изображение на этом веб-сайте и выполнив сценарий.

Этот яблочный скрипт предполагает, что изображение находится в буфере обмена в формате TIFF (возможно, придется проверить, является ли это тем, что выходит из Excel.) Он создает файл из буфера обмена, сохраняет его во временный каталог, а затем вставляет путь в указанное поле на первой странице в Safari.

Таким образом, вы должны скопировать изображение, переключиться на свою страницу сафари и запустить скрипт. (Из меню сценария превратите его в службу и назначьте ярлык или используйте FastScripts, чтобы назначить ярлык для appleScript.)

Сценарий должен быть скорректирован, чтобы найти правильное поле в вашей форме.

repeat with i in clipboard info  if TIFF picture is in i then  -- grab the picture from the clipboard, set up a filename based on date set tp to the clipboard as TIFF picture set dt to current date set dtstr to (time of dt as string) & ".tiff" set pt to ((path to temporary items from user domain as string) & dtstr) set tf to open for access file pt with write permission  -- save the file try write tp to tf close access tf on error close access tf end try  -- put the path into the proper field in the web Browser tell application "Safari" activate  -- adjust javascript as necessary -- currently inserts into Answer textarea of this superuser.com page for testing -- ie. make sure you've clicked "add answer" first set myJS to "document.getElementById('wmd-input').value = '" & pt & "'"  -- document 1 is frontmost do JavaScript myJS in document 1 end tell  exit repeat end if end repeat 

Редактировать: вещи для рассмотрения:

  • Я ничего не делаю с путем, разделитель по умолчанию - двоеточие. Вы можете хотеть путь POSIX.
  • Можно ли изменить javascript для выполнения загрузки файла javascript? (У меня нет опыта с этим, но я думаю, что это можно сделать.)
  • Excel поддерживает яблочный скрипт и имеет copy pictureкоманду. Может быть возможно сделать это за один шаг. Выберите картинку, запустите скрипт, скопируйте скрипт, сохраните, откройте веб-страницу и заполните форму.