如何复制图像,并在文件输入中粘贴时获取路径?

如何复制图像,并在文件输入中粘贴时获取路径?

我有时会收到客户的临时错误报告,我需要将其传输到我们的在线错误跟踪器。文本效果很好,但图片很乏味。

我正在寻找一种从文档(如 Excel 表)复制粘贴图像的解决方案,如果您将图像粘贴到 html 页面上的文件输入(或文本输入)中,则该文件将自动写入磁盘(tmp 目录),并将路径写入文件输入字段。

这个问题与将剪贴板图像直接粘贴到 Gmail 消息中,但我想问一下是否有仅使用本地程序的解决方案。我对所有操作系统的解决方案感兴趣。

答案1

好的伙计们,这就是我所做的。

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

将其编译为 EXE,使用热键 Ctrl+Shift+C 为其添加启动菜单快捷方式。然后它将剪贴板中的当前图像复制到一个文件中,并将文件路径放入剪贴板。

答案2

此 AutoHotKey 线程有一个用于截屏的 AutoHotKey 脚本。它包含一个简单的 .Net 1.1 程序的源代码,用于将剪贴板保存为 PNG。您可能希望它进行一些其他修改:

  • 将图像保存到不同的文件夹,并使用比image.png
  • 将新图片的路径复制到剪贴板

AutoHotKey 剪贴板命令是访问数据的另一种方法,尽管获取其图像数据的程序会稍微复杂一些。

答案3

不确定我是否回答了你的问题。但你可以试试 clipman。它可以帮助你复制所有内容并将其保存在一边,直到你逐一选择它。 Clipman,来源CNET

答案4

我不熟悉 Windows,但既然您要求提供所有操作系统的解决方案,我有一个适用于 Mac OS X 的 applescript 解决方案,我已经通过复制此网站上的图片并执行脚本对其进行了测试。

此 applescript 假定图像以 TIFF 格式存储在剪贴板上(可能需要测试一下这是否是从 Excel 中出来的。)它从剪贴板创建文件,将其保存到临时目录,然后将路径粘贴到 Safari 最首页上的指定字段中。

因此,您需要复制图像,切换到 Safari 页面,然后运行脚本。(从脚本菜单中,将其设为服务并分配快捷方式,或使用快速脚本为 applescript 分配一个快捷方式。

必须调整脚本才能在表单上找到正确的字段。

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

编辑:需要考虑的事项:

  • 我没有对路径进行任何操作,默认分隔符是冒号。您可能需要 POSIX 路径。
  • 是否可以更改 javascript 来执行文件上传 javascript?(我没有这方面的经验,但我认为可以做到。)
  • Excel 支持 applescript,并且有一个copy picture命令。一步就可以完成。选择图片,运行脚本,脚本复制,保存,打开网页并填写表格。

相关内容