0

ハンドラーについて調べたり読んだりしてきましたが、自分の状況でハンドラーを実装する方法を完全には理解していません。

ユーザーのクリップボードからスクリーンショットを表示したい。クリップボードから画像をビットマップ形式に取得するコードが既にあります。これは私が持っているものです:

var dataobj = new DataObject();
dataobj = (DataObject)Clipboard.GetDataObject();

System.Drawing.Image img = dataobj.GetData(DataFormats.Bitmap) as System.Drawing.Image;
original = (System.Drawing.Image)img.Clone();

img = resizeImage(img, new Size(670, 500));
String s = "c:/Temp/temp.png";
img.Save(s, ImageFormat.Png);
Image1.ImageUrl = s;
Image1.DataBind();

私の問題は、画像をハードディスクに保存できないことでした。

私の最初の質問は、この状況で画像ハンドラーが役立つかどうかです。

もしそうなら、どうすればそのコードを変更し、次のコードで画像ハンドラーに結び付けることができますか:

public class getmyimage : IHttpHandler 
{
  public void ProcessRequest(HttpContext context)
  {
    HttpResponse r = context.Response;
    r.ContentType = "image/png";
    // Write the requested image
    r.WriteFile("temp.png");
  }

  public bool IsReusable
  {
    get { return false; }
  }
}
4

2 に答える 2

1

Hello ハンドラー http を使用すると、顧客は要求をリダイレクトまたは書き換えたり、セキュリティ上の理由から要求のヘッダーをフォーマットしたり、一部のフォーラムでバナーを表示したりできます。しかし、あなたの例では、httpハンドラーは必要ないと思います

于 2012-07-25T15:57:49.773 に答える
0

web.config ファイルでハンドラーを構成し、URL を ImageURL プロパティに割り当てるか、拡張子が「ashx」の汎用ハンドラー ファイルを使用します。ASHX を使用する場合は、web.config ファイルで構成する必要はありません。ASHX ファイル パスを ImageURL プロパティに割り当てます。動的な画像をレンダリングする場合は、必ずキャッシュをクリアするか、後続の呼び出しで別の URL を使用してください。そうしないと、キャッシュされた画像が取得されます。ブログエントリーはこちら。

http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

http://www.eggheadcafe.com/community/asp-net/17/10093602/how-to-populate-image-form-sql-to-image-control.aspx

于 2012-07-25T17:39:23.487 に答える