Як скопіювати зображення, повернути шлях назад при вставці файлу?


8

Іноді від клієнтів я отримую спеціальні звіти про помилки, які мені потрібно перенести на наш Інтернет-трекер про помилки. Дуже добре працює з текстом, але малюнки втомлюють.

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

Це питання стосується прямо вставлення зображення буфера обміну в повідомлення gmail , але я хотів би запитати, чи є рішення, використовуючи лише локальну програму. Мене цікавлять рішення для всіх операційних систем.


Я думаю, що це неможливо без програмних програм сторонніх виробників.
укант

Програмне забезпечення сторонніх розробників не є проблемою - я просто хотів би знати, чи існує таке програмне забезпечення.
Олександр Торстлінг

Якщо такого ніхто не знайде, я зроблю його .. Рішення для Windows мені вистачить.
Павло Радзівіловський

1
Здається, що щось може зробити автошляху, хоча мені слід було б розглянути, як це зробити. Однак це здається чудовою ідеєю.
Phoshi

Відповіді:


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 - це ще один спосіб отримати доступ до цих даних, хоча програма для отримання даних про зображення буде дещо складнішою.


1

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


0
  • Клацніть правою кнопкою миші зображення та збережіть його?
  • Перетягніть зображення в папку?
  • Користуєтеся інструментом Snipping та врятуєте його звідти?

Ці три методи дозволять вам досить швидко зберегти файл. Провідник файлів завжди буде переходити в одну і ту ж папку, тому швидке збереження або завантаження файлу також не буде проблемою ...

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


Зображення не надходить з Інтернету. Це більше, ніж клацання правою кнопкою миші. Плюс, мені не потрібно багато підряд. Мені вона потрібна, періодично, для багатьох людей, на багатьох станціях. Точний випадок використання - додавання зображення у вікі fogbugz.
Павло Радзівіловський

Я цього не розумію ... Ви можете просто клацнути правою кнопкою миші зображення на Word або Excel і натиснути "Зберегти цю картинку". Якщо буфер обміну не працює, найшвидший спосіб - скористатись одним із перерахованих вище способів, або хтось створить надбудову для Word або Excel, яка додає правильну опцію меню для безпосереднього завантаження у fogbugz.
Тамара Війсман

0

Я не знайомий з Windows, але оскільки ви попросили рішення для всіх ОС, у мене є рішення апплемента для Mac OS X, яке я перевірив, копіюючи зображення на цьому веб-сайті та виконуючи сценарій.

Цей яблучний припис передбачає, що зображення знаходиться в буфері обміну у форматі TIFF (можливо, доведеться перевірити, чи є це те, що виходить із Excel.) Він створює файл із буфера обміну, зберігає його у тимчасовий каталог, а потім вставляє шлях у вказане поле на передній сторінці Safari.

Отже, ви скопіювали зображення, переключились на свою сторінку сафарі та запустили сценарій. (З меню сценарію перетворіть його в службу та призначте ярлик або скористайтеся FastScripts, щоб призначити ярлик для яблучного сценарію.)

Сценарій потрібно буде скоригувати, щоб знайти належне поле у ​​вашій формі.

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команду. Це може бути здійснено одним кроком. Виберіть зображення, запустіть сценарій, копії сценарію, збережіть, відкрийте веб-сторінку та заповніть форму.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.