Como copiar imagem, recuperar caminho ao colar na entrada de arquivo?

8

Às vezes recebo relatórios de bugs ad-hoc de clientes, que preciso transferir para nosso rastreador de bugs on-line. Funciona bem para texto, mas as imagens são tediosas.

Estou procurando uma solução para copiar e colar imagens de documentos (como planilhas do Excel) de forma que, se você colar uma imagem em uma entrada de arquivo (ou entrada de texto) em uma página html, o arquivo será automaticamente escrito em disco (tmp dir) e o caminho gravado no campo de entrada do arquivo.

Esta questão está relacionada com Cole diretamente a imagem da área de transferência na mensagem do Gmail , mas gostaria de perguntar se existe uma solução usando apenas um programa local. Estou interessado em soluções para todos os sistemas operacionais.

    
por Alexander Torstling 03.05.2010 / 12:04

5 respostas

3

Ok pessoal, isso é o que eu fiz.

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

Compilado para um EXE, adicionado um atalho de menu de inicialização para ele com uma tecla de atalho Ctrl + Shift + C. Em seguida, copia a imagem atual na área de transferência para um arquivo e coloca o caminho para o arquivo na área de transferência.

    
por 04.07.2010 / 15:10
2

Este tópico do AutoHotKey possui um script AutoHotKey para captura de tela. Ele inclui a origem de um programa .Net 1.1 trivial para salvar a área de transferência em um PNG. Você gostaria de ter algumas outras modificações:

  • Salve a imagem em uma pasta diferente, com um nome melhor que image.png
  • Copie o caminho para a nova imagem na sua área de transferência

Os comandos do AutoHotKey Clipboard são outra maneira de acessar esses dados, embora um programa para obter sua imagem os dados seriam um pouco mais complicados.

    
por 29.06.2010 / 18:07
1

Não tenho certeza se respondi sua pergunta. mas você pode experimentar o clipman. Ele ajuda você a copiar tudo e mantê-lo de lado até que você o selecione de volta um por um. Clipman, fonte da CNET

    
por 30.06.2010 / 09:16
0
  • Clique com o botão direito na imagem e salve-a?
  • Arraste a imagem para uma pasta?
  • Use a ferramenta de recorte e salve a partir daí?

Esses três métodos permitem que você salve um arquivo rapidamente. O File Explorer sempre irá para a mesma pasta, então salvar ou carregar rapidamente o arquivo também não será um problema ...

O recurso de área de transferência direta foi perguntado antes e falhou .

    
por 28.06.2010 / 12:13
0

Eu não estou familiarizado com o Windows, mas desde que você solicitou soluções para todos os sistemas operacionais, eu tenho uma solução applescript para Mac OS X que testei copiando uma imagem neste site e executando o script.

Este applescript pressupõe que a imagem está na área de transferência no formato TIFF (pode ser necessário testar para ver se é o que sai do Excel.) Cria o arquivo da área de transferência, salva-o em um diretório temporário e cola o arquivo. caminho em um campo especificado na primeira página do Safari.

Então, você copia a imagem, muda para sua página de safári e executa o script. (No menu de script, crie um serviço e atribua um atalho ou use FastScripts para atribuir um atalho ao applescript.)

O script precisará ser ajustado para encontrar o campo adequado em seu formulário.

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: Coisas a considerar:

  • Eu não faço nada com o caminho, o delimitador padrão é dois pontos. Você pode querer o caminho POSIX.
  • É possível alterar o javascript para executar um javascript de upload de arquivo? (Eu não tenho experiência com isso, mas acho que poderia ser feito.)
  • O Excel suporta o applescript e possui um comando copy picture . Pode ser viável fazer isso em uma etapa. Selecione a imagem, execute o script, copie as cópias, salve, abra a página da Web e preencha o formulário.
por 28.06.2010 / 18:51