2017-10-03 21 views
2

私はWEB-APPを使用しており、イメージとデータをバイト単位でデータベースに格納しています。撮影した画像を保存して、それをフォルダのどのような種類のフォルダにも保存したいのですが、私のためにキャプチャされた画像を表示してそれを保存し、再び表示する唯一の方法は、キャプチャ画像がクリックされます。バイトをImage ASP.NETに変換しImage1.Urlで使用する

private static byte[] ConvertHexToBytes(string hex) 
{ 
    // MemoryStream stream = new MemoryStream(); 
    byte[] bytes = new byte[hex.Length/2]; 
    for (int i = 0; i < hex.Length; i += 2) 
    { 
     bytes[i/2] = Convert.ToByte(hex.Substring(i, 2), 16); 
    } 
    return bytes; 
} 

私はバイトを使用して、その画像を表示したい、私は任意のフォルダに画像を保存したくない:

using (StreamReader reader = new StreamReader(Request.InputStream)) 
{ 
    hexString = Server.UrlEncode(reader.ReadLine()); 
    string imageName = DateTime.Now.ToString("dd-MM-yy hh-mm-ss"); 
    string imagePath = string.Format("~/Pictures/{0}.png", imageName); 
    File.WriteAllBytes(Server.MapPath(imagePath), ConvertHexToBytes(hexString)); 
    Session["Byte"] = hexString; 
    // Session["CapturedImage"] = ResolveUrl(imagePath); 
    Image1.ImageUrl = "data:image/jpg;base64," + Convert.ToBase64String(ConvertHexToBytes(hexString)); 

} 

私はバイトにその16進数文字列に変換する方法があります。これらのバイトをどうやってイメージに入れるのですか?

私はイメージタグImage1.imageUrl =を持っていますか?私はbase64バージョンを試しましたが、動作しません。

+0

[画像をメモリストリームに保存する](https://stackoverflow.com/questions/7629887/difficulty-saving-image-to-memorystream) – CodingYoshi

+0

画像がありませんバイト。 –

+0

[バイト配列から画像へ](https://stackoverflow.com/questions/9173904/byte-array-to-image-conversion) – CodingYoshi

答えて

2

どのようにこれらのバイトを取り込んでイメージに入れるのですか?

注:あなたの質問によれば、16進数をバイトに変換することではないと仮定しています。 GetImageBytes戻りbyte[]次のコードで

<asp:Image ID="Image1" runat="server" /> 

はあなたのaspxページでこれを持っている想像してみてください。

using (MemoryStream ms = new MemoryStream(GetImageBytes())) 
{ 
    // Image1 is instance of System.Web.UI.WebControls 
    this.Image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray()); 
} 

private byte[] GetImageBytes() 
{ 
    return System.IO.File.ReadAllBytes(Server.MapPath("~/Content/someImage.jpg")); 
} 

それをテストするためにあなたのコンテンツフォルダ内の画像を配置することによって、それを試してみてください:次に、(ファイルに保存せずに)画像を提供するために、私たちが行う必要があるのはこれです。それが動作することを知ったので、あなたはあなたのConvertHexToBytesメソッドで動作することを確認する必要があります。そうでなければ、明らかに何かがConvertHexToBytesメソッドで間違っています。

+0

私は画像を保存して、他のページを使用してそれを書き換えて、それはデータベースに保存されたバイトに変換し、それを完全に書き直しましたが、同じページにいても動作しません。 –

関連する問題