Wie kopiere ich ein Bild und erhalte den Pfad zurück, wenn ich eine Dateieingabe einfüge?

8

Manchmal erhalte ich Ad-hoc-Fehlerberichte von Kunden, die ich auf unseren Online-Fehler-Tracker übertragen muss. Funktioniert gut für Text, aber Bilder sind langweilig.

Ich suche nach einer Lösung zum Kopieren und Einfügen von Bildern aus Dokumenten (z. B. Excel-Tabellen). Wenn Sie ein Bild in eine Dateieingabe (oder Texteingabe) auf einer HTML-Seite einfügen, wird die Datei automatisch auf die Festplatte geschrieben (tmp dir) und der Pfad, der in das Dateieingabefeld geschrieben wird.

Diese Frage bezieht sich auf das direkte Einfügen eines Zwischenablagebilds in eine Google Mail-Nachricht . Ich möchte jedoch fragen, ob es eine Lösung gibt, die nur ein lokales Programm verwendet. Ich interessiere mich für Lösungen für alle Betriebssysteme.

Alexander Torstling
quelle
Ich denke, es ist nicht möglich ohne Software von Drittanbietern.
Ukanth
Software von Drittanbietern ist kein Problem - ich möchte nur wissen, ob solche Software vorhanden ist.
Alexander Torstling
Wenn niemand solche findet, werde ich eine machen. Windows-Lösung würde mir reichen.
Pavel Radzivilovsky
1
Klingt nach etwas, das Autohotkey tun könnte, obwohl ich untersuchen müsste, wie. Klingt allerdings nach einer großartigen Idee.
Phoshi

Antworten:

3

Okay Leute, das habe ich getan.

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

Kompilierte es zu einer EXE-Datei und fügte eine Startmenü-Verknüpfung mit einem Hotkey Strg + Umschalt + C hinzu. Anschließend wird das aktuelle Bild in der Zwischenablage in eine Datei kopiert und der Pfad zur Datei in die Zwischenablage eingefügt.

Pavel Radzivilovsky
quelle
2

Dieser AutoHotKey-Thread verfügt über ein AutoHotKey-Skript zum Erstellen eines Screenshots. Es enthält die Quelle für ein triviales .NET 1.1-Programm zum Speichern der Zwischenablage in einem PNG. Sie möchten, dass es einige andere Änderungen gibt:

  • Speichern Sie das Bild in einem anderen Ordner mit einem besseren Namen als image.png
  • Kopieren Sie den Pfad zum neuen Bild in Ihre Zwischenablage

Die AutoHotKey-Zwischenablagebefehle sind eine weitere Möglichkeit, auf diese Daten zuzugreifen, obwohl ein Programm zum Abrufen der Bilddaten etwas komplizierter wäre.

Ed Brannin
quelle
1

Ich bin mir nicht sicher, ob ich deine Frage beantworte. aber du kannst clipman ausprobieren. Es hilft Ihnen, alles zu kopieren und beiseite zu legen, bis Sie es einzeln wieder auswählen. Clipman, Quelle CNET

Jason
quelle
0
  • Klicken Sie mit der rechten Maustaste auf das Bild und speichern Sie es?
  • Bild in einen Ordner ziehen?
  • Verwenden Sie das Snipping Tool und speichern Sie es von dort?

Mit diesen drei Methoden können Sie eine Datei ziemlich schnell speichern. Der Datei-Explorer wechselt immer in denselben Ordner, sodass das schnelle Speichern oder Hochladen der Datei ebenfalls kein Problem darstellt ...

Die Funktion für die direkte Zwischenablage wurde bereits abgefragt und ist fehlgeschlagen .

Tamara Wijsman
quelle
Das Bild stammt nicht aus dem Internet. Es ist mehr als ein Rechtsklick. Außerdem brauche ich nicht viele hintereinander. Ich brauche gelegentlich einen für viele Leute an vielen Stationen. Der genaue Anwendungsfall ist das Hinzufügen eines Bildes zum Fogbugz-Wiki.
Pavel Radzivilovsky
Ich verstehe das nicht ... Sie können einfach mit der rechten Maustaste auf ein Bild in Word oder Excel klicken und auf "Dieses Bild speichern" klicken. Wenn die Zwischenablage nicht funktioniert, verwenden Sie am schnellsten eine der oben genannten Methoden oder lassen Sie jemanden ein Add-On für Word oder Excel schreiben, das eine richtige Menüoption zum direkten Hochladen auf fogbugz hinzufügt.
Tamara Wijsman
0

Ich bin mit Windows nicht vertraut, aber da Sie nach Lösungen für alle Betriebssysteme gefragt haben, habe ich eine Applescript-Lösung für Mac OS X, die ich getestet habe, indem ich ein Bild auf dieser Website kopiert und das Skript ausgeführt habe.

Bei diesem Applescript wird davon ausgegangen, dass sich das Bild im TIFF-Format in der Zwischenablage befindet (möglicherweise muss geprüft werden, ob dies aus Excel stammt). Es erstellt die Datei aus der Zwischenablage, speichert sie in einem temporären Verzeichnis und fügt den Pfad in ein Verzeichnis ein angegebenes Feld auf der vordersten Seite in Safari.

Sie kopieren also das Bild, wechseln zu Ihrer Safari-Seite und führen das Skript aus. (Machen Sie es im Skriptmenü zu einem Dienst und weisen Sie eine Verknüpfung zu, oder verwenden Sie FastScripts , um dem Applescript eine Verknüpfung zuzuweisen.)

Das Skript muss angepasst werden, um das richtige Feld in Ihrem Formular zu finden.

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

Bearbeiten: Dinge zu beachten:

  • Ich mache nichts mit dem Pfad, Standardbegrenzer ist ein Doppelpunkt. Möglicherweise möchten Sie den POSIX-Pfad.
  • Ist es möglich, das Javascript zu ändern, um ein Datei-Upload-Javascript auszuführen? (Ich habe keine Erfahrung damit, aber ich denke, es könnte getan werden.)
  • Excel unterstützt Applescript und verfügt über einen copy pictureBefehl. Dies kann in einem Schritt möglich sein. Bild auswählen, Skript ausführen, Skriptkopien erstellen, speichern, Webseite öffnen und das Formular ausfüllen.
Ghoppe
quelle