C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: プレビュー画像出力用のaspxを別のaspxで表示できない


(過去ログ 109 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■65084 / inTopicNo.1)  プレビュー画像出力用のaspxを別のaspxで表示できない
  
□投稿者/ ぶし (1回)-(2013/02/03(Sun) 12:05:07)

分類:[ASP.NET (C#)] 

初めて質問させていただきます。
現在asp.netとC#を利用してプレビューの画像を表示するシステムを作成しています。
システム構成ですが、画面遷移としては↓のように@ABのメインとなるaspxと、プレビュー画像を出力する画面としてCを用意しています。

@プレビュー画像選択画面(select.aspx) → Aプレビュー生成中画面(generatingpreview.aspx)
 ←→Bプレビュー画像表示画面(preview.aspx)←→ Cプレビュー画像出力用画面(outputpreviewimage.aspx)

Cを用意した理由としては、ローカルフォルダへpng等の形式で画像を格納するにはフォルダのアクセス権設定を
手動変更しないと格納ができなかったためです(手動変更は行いたくないので)。
Cの作成については次のURLを参考にプレビュー画像を出力するaspxを用意しました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/257aspdbbinary2/aspdbbinary2.html
http://www.codeproject.com/Tips/430320/Previewing-Image-in-ASP-NET-Image-Control-using-Cs

★問題の症状
上記の構成でシステムを作成したのですが、Cで出力したimage.aspxの画像データをBで次のように指定しても画面に
表示されず赤×になる状況になり、解決方法が見つからず悩んでおります。
PreviewImage.ImageUrl = "~/outputpreviewimage.aspx";

C→Bの遷移を無くしてoutputpreviewimage.aspxだけを画面表示するようコードを変えると、プレビュー画像のみが出力さ
れる画面が表示されるため、Cでの画像出力自体は問題なく行えています。
画面遷移の方法に問題があるのかと考え、B←→C間の遷移としてServer.Transferを利用したところ、Bの画面が表示されず
Cのプレビューイメージ画像だけがスクリーンに表示される状況になりました。
(次のURLの2007年6月13日 8:48の書き込みの方と同じ症状と予想)
http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/52ad1e96-6310-4e24-8fb7-71e59e84fd6e
// B←→C間の遷移をResponse.Ridirectにすると上記「★問題の症状」の状況になります。

どなたか本症状に対して解決のアドバイスをいただけないでしょうか?
よろしくお願いします。

引用返信 編集キー/
■65085 / inTopicNo.2)  Re[1]: プレビュー画像出力用のaspxを別のaspxで表示できない
□投稿者/ ぶし (2回)-(2013/02/03(Sun) 12:10:33)
Cプレビュー画像出力用画面(outputpreviewimage.aspx)は次のようなコードで、
Aプレビュー生成中画面(generatingpreview.aspx)で生成したプレビュー画像のbyteデータがSession
にSK_PreviewImageDataとして格納してあるので、それを取得してResponse.BinaryWirteで出力しています。

public partial class outputpreviewimage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if ((bool)Session[SessionUtil.SK_PreviewFlag] == false)
{
byte[] image = null;
if (Session[SessionUtil.SK_PreviewImageData] != null)
{
image = (byte[])Session[SessionUtil.SK_PreviewImageData];
Response.ContentType = "image/png";
Response.BinaryWrite(image);
}
Session[SessionUtil.SK_PreviewFlag] = true;
}
Response.Redirect("preview.aspx");
}
}

よろしくお願いします。

引用返信 編集キー/
■65087 / inTopicNo.3)  Re[2]: プレビュー画像出力用のaspxを別のaspxで表示できない
□投稿者/ daive (6回)-(2013/02/03(Sun) 20:59:07)
2013/02/03(Sun) 21:09:43 編集(投稿者)
//バイト配列→画像オブジェクト/画像オブジェクト→バイト配列の変換を行うには?[C#、VB]
//http://www.atmarkit.co.jp/fdotnet/dotnettips/603byteimage/byteimage.html
//サムネイル画像(縮小画像)を作成するには?[C#、VB]
//http://www.atmarkit.co.jp/fdotnet/dotnettips/559thumbnail/thumbnail.html
//より高速にサムネイル画像(縮小画像)を作成するには?[2.0のみ、C#、VB]
//http://www.atmarkit.co.jp/fdotnet/dotnettips/606fastthumbnail/fastthumbnail.html
//PictureBoxコントロールにWeb画像を表示するには?[2.0のみ、C#、VB]
//http://www.atmarkit.co.jp/fdotnet/dotnettips/451imglocation/imglocation.html
//ストリームからバイナリ・データを読み込み配列に格納するには?[C#、VB]
//http://www.atmarkit.co.jp/fdotnet/dotnettips/985memstream/memstream.html
//画像ファイルを圧縮してSQL Serverに登録
//http://teraomega.info/CommentView.aspx?titleno=00081

//Dobon さんや、他のサイトを、参考にした、コード例

省略
	imgAry = TifToJpg( imgAry );
	Response.ContentType = "image/jpeg" ;	// mimeType;
	Response.BinaryWrite( imgAry );
	Response.End( );
省略

		private byte[] TifToJpg( byte[] bImg )
		{
省略
			// Image → 変換保存memStream
			MemoryStream memStream = new MemoryStream();
			img.Save( memStream , imgCdinfo , encPrms );
省略
			//
			return rPrm;
		}
> 

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -