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

8

Às vezes, recebo relatórios de erros ad-hoc dos clientes, que eu preciso transferir para o nosso rastreador de erros online. 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á gravado automaticamente no disco (tmp dir) e o caminho gravado no campo de entrada do arquivo.

Esta pergunta está relacionada a Colar 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.

Alexander Torstling
fonte
Eu acho que não é possível sem softwares de terceiros.
ukanth
Software de terceiros não é um problema - eu gostaria de saber se esse software existe.
Alexander Torstling
Se ninguém encontrar isso, eu farei um. A solução do Windows seria suficiente para mim.
Pavel Radzivilovsky
11
Parece que algo que a autohotkey poderia fazer, embora eu tivesse que investigar como. Parece uma ótima idéia, no entanto.
Phoshi

Respostas:

3

Ok pessoal, foi 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");
        }
    }
}

Compilou-o em um EXE, adicionou um atalho do menu de inicialização 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.

Pavel Radzivilovsky
fonte
2

Esse segmento do AutoHotKey possui um script AutoHotKey para tirar uma captura de tela. Ele inclui a fonte de um programa trivial .Net 1.1 para salvar a área de transferência em um PNG. Você gostaria que ele tivesse 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 área de transferência

Os comandos da AutoHotKey Clipboard são outra maneira de acessar esses dados, embora um programa para obter seus dados de imagem seja um pouco mais complicado.

Ed Brannin
fonte
1

Não tenho certeza se estou respondendo sua pergunta. mas você pode experimentar o clipman. ajuda a copiar tudo e mantê-lo de lado até você selecioná-lo novamente, um por um. Clipman, fonte CNET

Jason
fonte
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 de lá?

Esses três métodos permitem salvar um arquivo rapidamente. O File Explorer sempre acessa a mesma pasta, portanto, salvar ou carregar rapidamente o arquivo também não será um problema ...

O recurso de área de transferência direta já foi solicitado e falhou .

Tamara Wijsman
fonte
A imagem não vem da web. É mais do que um clique com o botão direito. Além disso, não preciso de muitos seguidos. Eu preciso de um, ocasionalmente, para muitas pessoas, em muitas estações. O caso de uso exato é adicionar uma imagem ao fogbugz wiki.
Pavel Radzivilovsky
Eu não entendo isso ... Você pode simplesmente clicar com o botão direito do mouse em uma imagem no Word ou Excel e clicar em "Salvar esta imagem". Se a área de transferência não funcionar, a maneira mais rápida é usar um dos métodos acima ou solicitar que alguém escreva um complemento para o Word ou Excel que adicione uma opção de menu à direita para fazer o upload diretamente no fogbugz.
Tamara Wijsman
0

Não conheço o Windows, mas como você solicitou soluções para todos os sistemas operacionais, tenho uma solução AppleScript para o Mac OS X que testei, copiando uma imagem deste 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 é isso que sai do Excel.) Ele cria o arquivo da área de transferência, salva-o em um diretório temporário e cola o caminho em um campo especificado na primeira página do Safari.

Então, você copia a imagem, alterna para a sua página de safari e executa o script. (No menu de script, torne-o um serviço e atribua um atalho ou use o FastScripts para atribuir um atalho ao AppleScript.)

O script precisará ser ajustado para encontrar o campo apropriado no 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:

  • 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? (Não tenho experiência com isso, mas acho que poderia ser feito.)
  • O Excel oferece suporte ao AppleScript e possui um copy picturecomando. Pode ser possível fazer isso em uma única etapa. Selecionar imagem, executar script, copiar cópias, salvar, abrir uma página da web e preencher o formulário.
ghoppe
fonte