2011-06-25 3 views
1

public Image Image {get;セット;私はこの取得}キャスト時に不適切な画像クラスが使用されました。どのように正しく行うのですか?

Image=(Image)randomImageFromCommentsClass.Image; 

はSystem.Web.UI.WebControls

にSystem.Drawing.Imageを変換できません。私は私が間違った名前空間(System.Drawing)をインポートしたと思います。..それ間違いかもしれません。私がやろうとしているのは、Image型をデータベースからImageオブジェクトに変換することです。私はそれを修正すればよいfails..how上記

public class Comments 
{ 
    public Image Image { get; set; } 
     Image = DBNull.Value.Equals(dr["Avatar"]) ? null: (Image)dr["Image"]; 

この画像の宿泊施設には、どういうわけかのVisual Studio 2010

で別のクラスのコードファイルからキャストのですか?

+0

ええ、間違った名前空間のように聞こえます。完全修飾バージョンを使用することができます...型の名前空間だけを含めてください。 – mpen

答えて

0

キャストしているオブジェクトが他のオブジェクトのインスタンスでない限り、キャストすることはできません。

あなたはこのsnipetによる画像へのバイト配列ひそかことができます。

Serving Dynamic Content with HTTP Handlers

+0

データベースの内部にある画像の種類は何ですか? DrawingまたはWebControls名前空間に属しています – Matrix001

+0

これはどちらにも属しません。画像はデータベースにバイト配列として格納されます。 –

+0

lol..Anywayはバイト配列を画像に変換しますか? DrawingクラスからImage Webcontrolに挿入しますか? – Matrix001

0
:あなたがここにハンドラより多くの情報が必要になりますあなたのWebBrowserコントロールを動的に作成した画像を表示するには

public Image byteArrayToImage(byte[] byteArrayIn){ 
    MemoryStream ms = new MemoryStream(byteArrayIn); 
    Image returnImage = Image.FromStream(ms); 
    return returnImage 
} 

SQLのImageデータ型について言えば、これらのイメージはbyte[]形式に格納されているので、データベースのデータをbyte []変数に入れてからFileStreamを使用して新しいデータを作成する必要がありますあなたのfileSystemの一時的な画像ファイルを作成し、それを任意の画像コントロールまたは何でもしたいものに割り当てます。

データベースに保存されているイメージをASP.NETのイメージコントロールに割り当てようとしていますか?

byte[] ImageData; 
string filePath = @"~\Image.jpeg"; //path or temporary Image 
using (con) 
{ 
    con.Open(); 
    SqlCommand getImageCmd = new SqlCommand("/* your SQL query to get Image from database*/ ", con); 
    ImageData = (byte[])getImageCmd.ExecuteScalar(); 
    con.Close(); 
} 
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate); 
using (fs) 
{ 
    foreach (byte b in ImageData) 
    { 
     fs.WriteByte(b); 
    } 
    fs.Flush(); 
    fs.Close(); 
} 

ImageControl.ImageUrl = "~/Image.jpeg"; // assign that temp Image to Image Control 
+0

うん。私はこれをやろうとする1)データベースから画像を取得する2)イメージ描画に変換する3)Webコントロールに変換する..または、ショートカットがある場合は、単に描画イメージ.. straightに変換する離れて – Matrix001

+0

上記のコードを試して、それが動作するかどうかを伝える –

+0

私はそれを試してみます。少し後で、私に方向性を提供してくれたことに感謝します。 – Matrix001

0

この記事では、画像を受け入れるImageコントロールを作成する方法を示しています。私はバイトが[] System.Drawing ので、ここに私が使用してソリューションです変換するどのような方法があると思ういけない

メモリから直接ファイルを保存せずに、またはハンドラが必要です。それが役に立つと願っています。

http://www.eggheadcafe.com/tutorials/aspnet/e1a14e2c-e746-4bed-a552-24c632bd2709/aspnet-inmemory-image-control-with-builtin-resizing-of-posted-file.aspx

関連する問題