アドホックなバグレポートを顧客から受け取ることがありますが、それをオンラインのバグトラッカーに転送する必要があります。テキストには問題なく機能しますが、画像は面倒です。
Htmlページのファイル入力(またはテキスト入力)に画像を貼り付けると、ファイルが自動的にディスクに書き込まれるように、ドキュメント(Excelシートなど)から画像をコピーして貼り付けるソリューションを探しています。 (tmp dir)、およびファイル入力フィールドに書き込まれるパス。
この質問は クリップボードの画像をGmailメッセージに直接貼り付ける に関連していますが、ローカルプログラムのみを使用した解決策があるかどうかを尋ねたいと思います。すべてのオペレーティングシステムのソリューションに興味があります。
さて、これは私がしたことです。
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を使用してスタートアップメニューのショートカットを追加しました。次に、クリップボード内の現在の画像をファイルにコピーし、ファイルへのパスをクリップボードに入れます。
このAutoHotKeyスレッド スクリーンショットを撮るためのAutoHotKeyスクリプトがあります。これには、クリップボードをPNGに保存するための簡単な.Net1.1プログラムのソースが含まれています。他にもいくつか変更を加える必要があります。
image.png
よりも良い名前で画像を別のフォルダに保存しますAutoHotKeyクリップボードコマンド は、そのデータにアクセスする別の方法ですが、画像データを取得するプログラムは少し複雑になります。
私があなたの質問に答えるかどうかわからない。しかし、あなたはクリップマンを試すことができます。すべてをコピーして、1つずつ選択するまで脇に置いておくと便利です。 Clipman、ソースCNET
私はWindowsに精通していませんが、すべてのOSのソリューションを求められたので、このWebサイトの画像をコピーしてスクリプトを実行することにより、Mac OSX用のapplescriptソリューションをテストしました。
このAppleScriptは、画像がTIFF形式でクリップボードにあることを前提としています(これがExcelから出力されるかどうかをテストする必要がある場合があります)。クリップボードからファイルを作成し、一時ディレクトリに保存してから、パスをSafariの最前面のページで指定されたフィールド。
したがって、画像をコピーし、Safariページに切り替えて、スクリプトを実行します。 (スクリプトメニューから、サービスにしてショートカットを割り当てるか、 FastScripts を使用して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
編集:考慮事項:
copy picture
コマンド。これを1つのステップで実行できる場合があります。画像を選択し、スクリプトを実行し、スクリプトをコピーして保存し、Webページを開いて、フォームに入力します。これらの3つの方法を使用すると、ファイルを非常にすばやく保存できます。ファイルエクスプローラーは常に同じフォルダーに移動するため、ファイルをすばやく保存またはアップロードしても問題はありません...
直接クリップボード機能 以前に質問されて失敗しました 。