Comment copier l'image, récupérer le chemin lors du collage dans l'entrée de fichier?


8

Je reçois parfois des rapports de bogue ad hoc de clients, que je dois transférer vers notre outil de suivi des bogues en ligne. Fonctionne bien pour le texte, mais les images sont fastidieuses.

Je cherche une solution pour copier-coller des images à partir de documents (comme des feuilles Excel) de manière à ce que si vous collez une image dans une entrée de fichier (ou une entrée de texte) sur une page html, le fichier sera automatiquement écrit sur le disque (dir tmp) et le chemin d'accès écrit dans le champ de saisie du fichier.

Cette question est liée à coller directement l'image du presse-papiers dans le message gmail , mais je voudrais demander s'il existe une solution utilisant uniquement un programme local. Je suis intéressé par des solutions pour tous les systèmes d'exploitation.


Je pense que ce n'est pas possible sans les logiciels tiers.
ukanth

Les logiciels tiers ne sont pas un problème - je voudrais simplement savoir si de tels logiciels existent.
Alexander Torstling

Si personne n'en trouve, j'en ferai un. La solution Windows me suffira.
Pavel Radzivilovsky

1
Cela ressemble à quelque chose que la fonction autohotkey pourrait faire, mais je devrais voir comment. Cela semble être une excellente idée, cependant.
Phoshi

Réponses:


3

D'accord les gars, c'est ce que j'ai fait.

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

Compilé dans un EXE, ajouté un raccourci de menu de démarrage avec un raccourci clavier Ctrl + Maj + C. Il copie ensuite l'image actuelle du presse-papiers dans un fichier et place le chemin d'accès au fichier dans le presse-papiers.


2

Ce fil AutoHotKey a un script AutoHotKey pour prendre une capture d'écran. Il inclut la source d'un programme trivial .Net 1.1 pour enregistrer le presse-papiers dans un PNG. Vous voudriez qu'il ait quelques autres modifications:

  • Enregistrez l'image dans un dossier différent, avec un nom meilleur que image.png
  • Copiez le chemin d'accès à la nouvelle image dans votre presse-papiers

Les commandes du Presse-papiers AutoHotKey sont un autre moyen d'accéder à ces données, bien qu'un programme pour obtenir ses données d'image serait un peu plus compliqué.


1

Je ne sais pas si je réponds à votre question. mais vous pouvez essayer clipman. il vous aide à tout copier et à le conserver de côté jusqu'à ce que vous le sélectionniez à nouveau un par un. Clipman, source CNET


0
  • Faites un clic droit sur l'image et enregistrez-la?
  • Faites glisser l'image vers un dossier?
  • Utilisez l'outil de capture et enregistrez-le à partir de là?

Ces trois méthodes vous permettront d'enregistrer un fichier assez rapidement. L'explorateur de fichiers ira toujours dans le même dossier, donc enregistrer ou télécharger rapidement le fichier ne sera pas un problème non plus ...

La fonction de presse-papiers directe a déjà été demandée et a échoué .


L'image ne provient pas du Web. C'est plus qu'un clic droit. De plus, je n'ai pas besoin de beaucoup d'affilée. J'en ai besoin, à l'occasion, pour de nombreuses personnes, dans de nombreuses stations. Le cas d'utilisation exact est d'ajouter une image au wiki de fogbugz.
Pavel Radzivilovsky

Je ne comprends pas cela ... Vous pouvez simplement cliquer avec le bouton droit sur une image dans Word ou Excel et cliquer sur "Enregistrer cette image". Si le presse-papiers ne fonctionne pas, le moyen le plus rapide consiste à utiliser l'une des méthodes ci-dessus ou à demander à quelqu'un d'écrire un module complémentaire pour Word ou Excel qui ajoute une option de menu à droite pour télécharger directement vers fogbugz.
Tamara Wijsman

0

Je ne connais pas Windows, mais comme vous avez demandé des solutions pour tous les systèmes d'exploitation, j'ai une solution AppleScript pour Mac OS X que j'ai testée en copiant une image sur ce site Web et en exécutant le script.

Cet applescript suppose que l'image se trouve dans le presse-papiers au format TIFF (il faudra peut-être tester pour voir si c'est ce qui sort d'Excel.) Il crée le fichier à partir du presse-papiers, l'enregistre dans un répertoire temporaire, puis colle le chemin dans un champ spécifié sur la page la plus en avant dans Safari.

Donc, vous copiez l'image, basculez vers votre page de safari et exécutez le script. (À partir du menu de script, transformez-le en service et attribuez un raccourci, ou utilisez FastScripts pour attribuer un raccourci à l'applescript.)

Le script devra être ajusté pour trouver le champ approprié sur votre formulaire.

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

Edit: Choses à considérer:

  • Je ne fais rien avec le chemin, le délimiteur par défaut est un deux-points. Vous voudrez peut-être le chemin POSIX.
  • Est-il possible de changer le javascript pour exécuter un téléchargement de fichier javascript? (Je n'ai aucune expérience avec cela, mais je pense que cela pourrait être fait.)
  • Excel prend en charge applescript et dispose d'une copy picturecommande. Il peut être possible de le faire en une seule étape. Sélectionnez l'image, exécutez le script, les copies de script, enregistre, ouvre la page Web et remplit le formulaire.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.