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

8

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

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

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

Александр Торстлинг
источник
Я думаю, что это невозможно без стороннего программного обеспечения.
Укант
Стороннее программное обеспечение не проблема - я просто хотел бы знать, существует ли такое программное обеспечение.
Александр Торстлинг
Если никто не найдет такой, я сделаю один .. Windows-решение мне будет достаточно.
Павел Радзивиловский
1
Похоже, что AutoHock может сделать, хотя я должен разобраться, как. Звучит как отличная идея.
Фоши

Ответы:

3

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

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

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

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

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

Эд Браннин
источник
1

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

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

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

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

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

Я не знаком с 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команду. Это может быть возможно сделать за один шаг. Выберите картинку, запустите скрипт, скопируйте скрипт, сохраните, откройте веб-страницу и заполните форму.
ghoppe
источник