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

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

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

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

8
задан 20.03.2017, 12:04

5 ответов

Хорошо парни, Это - то, что я сделал.

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. Это затем копирует текущее изображение в буфере обмена в файл и помещает путь к файлу в буфер обмена.

3
ответ дан 07.12.2019, 14:15

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

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

Команды Буфера обмена AutoHotKey являются другим способом получить доступ к тем данным, хотя программа для получения ее данных изображения была бы немного более сложной.

2
ответ дан 07.12.2019, 14:15

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

1
ответ дан 07.12.2019, 14:15
  • Щелкнуть правой кнопкой по изображению и сохранить его?
  • Перетащить изображение к папке?
  • Использовать Инструмент Отрезания и сохранить его оттуда?

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

Прямую функцию буфера обмена спросили прежде и отказавшими.

0
ответ дан 07.12.2019, 14:15

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

Этот applescript предполагает, что изображение находится на буфере обмена в формате TIFF (возможно, придется протестировать, чтобы видеть, является ли это тем, что выходит из Excel.) Это создает файл из буфера обмена, сохраняет его к временному каталогу, затем вставляет путь к указанному полю на frontmost странице в 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 поддерживает applescript и имеет a copy picture команда. Может быть выполнимо сделать это за один шаг. Выберите изображение, запустите скрипт, копии сценария, сохраняет, открывает веб-страницу и заполняет форму.
0
ответ дан 07.12.2019, 14:15

Теги

Похожие вопросы