我有时会收到客户的临时错误报告,我需要将其传输到我们的在线错误跟踪器。文本效果很好,但图片很乏味。
我正在寻找一种从文档(如 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
命令。一步就可以完成。选择图片,运行脚本,脚本复制,保存,打开网页并填写表格。