- PR -

WebフォームImageコントロールにTifの画像を表示させたい

投稿者投稿内容
hit
常連さん
会議室デビュー日: 2004/04/01
投稿数: 44
投稿日時: 2005-01-06 16:24
自己レスです。
どうやらメモリ不足が理由でした。
メモリ使用の制限値を大きくすると、
A3サイズでも縮小できるようになりました。
A2サイズはやはりできませんが、メモリを増やすことで
解決しそうです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-06 22:03
なんだか進んでいるなぁ。ソースは、せっかく書いたから置いておこう。ファイルを経由せずにJPEGに変更します。

引用:

hitさんの書き込み(2005-01-06 15:15)より:

A4サイズでは、やろうとすることはできたのですが、
もとの画像ファイルのサイズがA4を超える場合、


 ちょっと意地悪な質問。「A4サイズって、何を元にA4サイズですか?」
 解像度ってご存じですか?解像度200dpiの画像を、解像度だけ400dpiであると書き換えると、出力したときに1/4の大きさになります。もっとも、出力するプログラムが解像度を見てくれたらの話しですけど。

 あと、ASP.NETということですが、セッション管理はどのように行っていますか?インプロセスの場合、使用可能なメモリ量の60%を確保すると、プロセスが再起動してセッション情報が失われます。


ソースの一部
コード:
<!-- HTMLに記述 -->
<!-- FileNameはHTTP Encodeすること -->
<image src="Tiff2Jpeg.aspx?src=FileName" />


コード:
// Tiff2Jpeg.aspx.csの一部
System.IO.Stream rstrm = null;
System.Drawing.Bitmap bmp = null;
System.IO.Stream wstrm = null;
Byte ret[];
// RequestからFileNameを取り出す
try {
	rstrm = new System.IO.FileStream(
		FileName
		, System.IO.FileMode.Open
		, System.IO.FileAccess.Read);
	bmp = new System.Drawing.Bitmap(rstrm);
	wstrm = new System.IO.MemoryStream();
	// 解像度変更
	bmp.SetResolution(dpiX, dpiY);
	bmp.Save(wstrm, System.Drawing.ImageFormat.Jpeg);
	wstrm.Flush();
	ret = new Byte[wstrm.Length];
	wstrm.Position = 0;
	wstrm.Read(ret, 0, wstrm.Length);
} finally {
	if (wstrm != null) wstrm.Close();
	if (bmp != null) bmp.Dispose();
	if (strm != null) strm.Close();
	rstrm = null;
	bmp = null;
	wstrm = null;
}
// ret[]をResponse.Writeする


_________________
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-01-06 23:11
折角ある程度作業が進んでいるところで蛇足かもしれませんが、
tiffはQuickTimeプラグインを導入すれば表示が可能です。

スキルアップ/キャリアアップ(JOB@IT)