Jak skopiować obraz, uzyskać ścieżkę wstecz podczas wklejania w pliku wejściowym?

8

Czasami otrzymuję od klientów raporty o błędach, które muszę przenieść do naszego internetowego narzędzia do śledzenia błędów. Działa dobrze w przypadku tekstu, ale zdjęcia są nużące.

Szukam rozwiązania do kopiowania i wklejania obrazów z dokumentów (takich jak arkusze programu Excel) w taki sposób, że jeśli wkleisz obraz do pliku wejściowego (lub tekstu) na stronie HTML, plik zostanie automatycznie zapisany na dysku (tmp dir) i ścieżka zapisana w polu wejściowym pliku.

To pytanie dotyczy bezpośrednio wklejania obrazu ze schowka do wiadomości Gmaila , ale chciałbym zapytać, czy istnieje rozwiązanie wykorzystujące tylko program lokalny. Interesują mnie rozwiązania dla wszystkich systemów operacyjnych.

Alexander Torstling
źródło
Myślę, że nie jest to możliwe bez oprogramowania stron trzecich.
ukanth
Oprogramowanie innych firm nie stanowi problemu - chciałbym tylko wiedzieć, czy takie oprogramowanie istnieje.
Alexander Torstling
Jeśli nikt tego nie znajdzie, zrobię jedno. Rozwiązanie Windows byłoby dla mnie wystarczające.
Pavel Radzivilovsky
1
Brzmi jak coś, co może zrobić auto-klucz, choć musiałbym się zastanowić, jak to zrobić. Brzmi jednak jak świetny pomysł.
Phoshi

Odpowiedzi:

3

Okej, to właśnie zrobiłem.

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");
        }
    }
}

Skompilowałem go do pliku EXE, dodałem do niego skrót menu startowego za pomocą skrótu Ctrl + Shift + C. Następnie kopiuje bieżący obraz ze schowka do pliku i umieszcza ścieżkę do pliku w schowku.

Pavel Radzivilovsky
źródło
2

Wątek AutoHotKey ma skrypt AutoHotKey do robienia zrzutu ekranu. Zawiera źródło trywialnego programu .Net 1.1 do zapisywania schowka w formacie PNG. Chcesz mieć kilka innych modyfikacji:

  • Zapisz obraz w innym folderze o nazwie lepszej niż image.png
  • Skopiuj ścieżkę do nowego obrazu do schowka

Te polecenia AutoHotkey Schowek to kolejny sposób, aby uzyskać dostęp do danych, choć program, aby uzyskać jego dane obraz byłby nieco bardziej skomplikowana.

Ed Brannin
źródło
1

Nie jestem pewien, czy odpowiadam na twoje pytanie. ale możesz wypróbować clipmana. pomaga Ci skopiować wszystko i zachować je na bok, dopóki nie wybierzesz go pojedynczo. Clipman, źródło CNET

Jason
źródło
0
  • Kliknij obraz prawym przyciskiem myszy i zapisz?
  • Przeciągnąć obraz do folderu?
  • Używać narzędzia do wycinania i zapisać go stamtąd?

Te trzy metody pozwolą ci szybko zapisać plik. Eksplorator plików zawsze będzie przechodził do tego samego folderu, więc szybkie zapisanie lub przesłanie pliku nie będzie problemem ...

Funkcja bezpośredniego schowka została wcześniej zapytana i nie powiodła się .

Tamara Wijsman
źródło
Obraz nie pochodzi z sieci. To więcej niż kliknięcie prawym przyciskiem. Poza tym nie potrzebuję wielu z rzędu. Potrzebuję jednego, od czasu do czasu, dla wielu ludzi na wielu stacjach. Dokładny przypadek użycia to dodanie zdjęcia do wiki fogbugz.
Pavel Radzivilovsky
Nie rozumiem tego ... Możesz po prostu kliknąć prawym przyciskiem myszy obraz w programie Word lub Excel i kliknąć „Zapisz to zdjęcie”. Jeśli schowek nie działa, najszybszym sposobem jest użycie jednej z powyższych metod lub poproszenie kogoś o napisanie dodatku do programu Word lub Excel, który doda odpowiednią opcję menu do bezpośredniego przesłania do fogbugz.
Tamara Wijsman,
0

Nie znam systemu Windows, ale ponieważ poprosiłeś o rozwiązania dla wszystkich systemów operacyjnych, mam rozwiązanie AppleScript dla systemu Mac OS X, które przetestowałem, kopiując zdjęcie na tej stronie i wykonując skrypt.

W tym skrypcie jabłkowym założono, że obraz znajduje się w schowku w formacie TIFF (być może trzeba będzie sprawdzić, czy pochodzi to z programu Excel). Tworzy plik ze schowka, zapisuje go w katalogu tymczasowym, a następnie wkleja ścieżkę do pliku określone pole na pierwszej stronie w Safari.

Tak więc skopiujesz obraz, przełączysz się na stronę safari i uruchom skrypt. (Z menu skryptu przejdź do usługi i przypisz skrót lub użyj skryptów FastScript, aby przypisać skrót do skryptu apple.)

Skrypt będzie musiał zostać dostosowany, aby znaleźć odpowiednie pole w formularzu.

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

Edycja: Rzeczy do rozważenia:

  • Nic nie robię ze ścieżką, domyślnym ogranicznikiem jest dwukropek. Możesz chcieć ścieżki POSIX.
  • Czy można zmienić javascript, aby wykonać javascript do przesyłania plików? (Nie mam z tym doświadczenia, ale myślę, że można to zrobić.)
  • Program Excel obsługuje skrypt AppleScript i ma copy picturepolecenie. Może to być wykonalne w jednym kroku. Wybierz obraz, uruchom skrypt, kopie skryptu, zapisuje, otwiera stronę internetową i wypełnia formularz.
ghoppe
źródło