¿Cómo copiar la imagen, recuperar la ruta al pegar la entrada del archivo?

8

A veces recibo informes de errores ad-hoc de los clientes, que necesito transferir a nuestro rastreador de errores en línea. Funciona bien para el texto, pero las imágenes son tediosas.

Estoy buscando una solución para copiar y pegar imágenes de documentos (como hojas de Excel) de manera que si pega una imagen en una entrada de archivo (o entrada de texto) en una página html, el archivo se escribirá automáticamente en el disco (tmp dir) y la ruta escrita en el campo de entrada del archivo.

Esta pregunta está relacionada con Pegar directamente la imagen del portapapeles en el mensaje de Gmail , pero me gustaría preguntar si hay una solución utilizando solo un programa local. Estoy interesado en soluciones para todos los sistemas operativos.

Alexander Torstling
fuente
Creo que no es posible sin software de terceros.
2010
El software de terceros no es un problema, solo me gustaría saber si dicho software existe.
Alexander Torstling
Si nadie encuentra eso, haré uno ... La solución de Windows sería suficiente para mí.
Pavel Radzivilovsky
1
Suena como algo que autohotkey podría hacer, aunque tendría que investigar cómo. Sin embargo, parece una gran idea.
Phoshi

Respuestas:

3

Bien chicos, esto es lo que hice.

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

Lo compiló en un EXE, le agregó un acceso directo al menú de inicio con una tecla de acceso rápido Ctrl + Shift + C. Luego copia la imagen actual en el portapapeles a un archivo y coloca la ruta al archivo en el portapapeles.

Pavel Radzivilovsky
fuente
2

Este hilo de AutoHotKey tiene un script de AutoHotKey para tomar una captura de pantalla. Incluye la fuente de un programa trivial .Net 1.1 para guardar el portapapeles en un PNG. Desearía que tuviera algunas otras modificaciones:

  • Guarde la imagen en una carpeta diferente, con un nombre mejor que image.png
  • Copie la ruta a la nueva imagen en su portapapeles

Los comandos del Portapapeles AutoHotKey son otra forma de acceder a esos datos, aunque un programa para obtener sus datos de imagen sería un poco más complicado.

Ed Brannin
fuente
1

No estoy seguro si estoy respondiendo tu pregunta. pero puedes probar clipman. te ayuda a copiar todo y guardarlo a un lado hasta que lo vuelvas a seleccionar uno por uno. Clipman, fuente CNET

Jason
fuente
0
  • Haga clic derecho en la imagen y guárdela.
  • Arrastra la imagen a una carpeta?
  • ¿Usar la herramienta de recorte y guardarlo desde allí?

Estos tres métodos le permitirán guardar un archivo bastante rápido. El Explorador de archivos siempre irá a la misma carpeta, por lo que guardar o cargar rápidamente el archivo tampoco será un problema ...

La función directa del portapapeles se ha solicitado antes y ha fallado .

Tamara Wijsman
fuente
La imagen no proviene de la web. Es más que un clic derecho. Además, no necesito muchos seguidos. Necesito uno, de vez en cuando, para muchas personas, en muchas estaciones. El caso de uso exacto es agregar una imagen al wiki de fogbugz.
Pavel Radzivilovsky
No entiendo esto ... Puede hacer clic derecho en una imagen en Word o Excel y hacer clic en "Guardar esta imagen". Si el portapapeles no funciona, la forma más rápida es usar uno de los métodos anteriores o hacer que alguien escriba un complemento para Word o Excel que agregue una opción de menú correcta para cargar directamente a fogbugz.
Tamara Wijsman
0

No estoy familiarizado con Windows, pero dado que solicitó soluciones para todos los sistemas operativos, tengo una solución de AppleScript para Mac OS X que probé copiando una imagen en este sitio web y ejecutando el script.

Este applecript asume que la imagen está en el portapapeles en formato TIFF (puede que tenga que probar para ver si esto es lo que sale de Excel). Crea el archivo desde el portapapeles, lo guarda en un directorio temporal y luego pega la ruta en un campo especificado en la página frontal de Safari.

Por lo tanto, debe copiar la imagen, cambiar a su página de safari y ejecutar el script. (Desde el menú del script, conviértalo en un servicio y asigne un acceso directo, o use FastScripts para asignar un acceso directo al AppleScript).

La secuencia de comandos deberá ajustarse para encontrar el campo adecuado en su formulario.

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

Editar: Cosas a considerar:

  • No hago nada con la ruta, el delimitador predeterminado es dos puntos. Es posible que desee la ruta POSIX.
  • ¿Es posible cambiar el JavaScript para ejecutar un archivo de carga de JavaScript? (No tengo experiencia con esto, pero creo que podría hacerse).
  • Excel es compatible con AppleScript y tiene un copy picturecomando. Puede ser factible hacer esto en un solo paso. Seleccione la imagen, ejecute el script, las copias del script, guarda, abre la página web y completa el formulario.
ghoppe
fuente