2016-04-29 7 views
1

私はbase64形式で保存されているデータベースから画像を取得しています。ここで私の要件は、私はユーザーフレンドリーなURLにbase64画像のURLを変換したいです。私は多くの解決策を試しましたが、期待通りには得られませんでした。誰も私にこれを達成する方法を提案することはできますか?例についてはBase64の画像URLをASP.NETのユーザーフレンドリーURLに変換する方法

は: -

これは私が代わりにbase64で取得したいbas64

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAJACAYAAABlmtk2AAAgAElEQVR4Xu 3dQYoj5paEUdng7Zhemie1ipz00rwfg2nSUOPKvEdCdPD11IqreucPQZCT/u3j4+PPPx6P3x//D//vn8 fj389/dv/+9zxe/u9x//mt+ecvAvVH9DybvxvKhU//3/734+N//vrx42859K7s57/987v797/nBfJ/j/ vPb80/fxGoP6Ln2fzdUC58+jeARBCz/QAQEOP5IyDG80dAjOePgBjPHwEx3gBCQI33A1BBy+dvfprOXw Utn7/5aTp/FbR8A8j8ON0PgAnpQP7Ex+H8mZAO5E98HM6fCelAA4j4PNwPwA3lQv6i59n83VAu5C96ns 3fDeVCA0j0npDtB/AERDiRP+A9IZr/ExDhRP6A94Ro/k9AhBMNIMB7RrQfwDMU7zfyv9s9I5n/MxTvN/ K/2z0jmf8zFO83GkB3u6ck+wE8hfF8JP8z3VOC+T+F8Xwk/zPdU4L5P4XxfKQBdKZ7TrAfwHMcr1fyv8 o9J5f/cxyvV/K/yj0nl/9zHK9XGkBXuSfl+gE8CfJ4Jv8j3JNi+T8J8ngm/yPck2L5PwnyeKYBdIR7Vq 6/oieZ/N3Q7mQv+h5dsG/AeQ9OF9YKFAD6Pz8HKw/TEgH8ic+DufPhHRgwb8BRBWw8EKBGkDWAUnXH9H zbP5uKBfyFz3PLvg3gLwH5wsLBWoAnZ+fg/WHCelA/sTH4fyZkA4s+P/28fHx5x+Px+8k8abwP4/Hv59 f3b//PQ+Q/3vcf35r/vmLQP0RPc/m74Zy4dP//wBHqel8UTBFDwAAAABJRU5ErkJggg==" /> 

ある

+0

可能重複( http://stackoverflow.com/questions/5400173/converting-a-base-64-string-to-an-image-and-saving-it) –

答えて

0

彼Base64文字列パラメータこの任意の提案を達成するためにどのように

<img src="http://www.domainname.com/imagename.jpg /> 

最初にConvert.FromBase64Stringメソッドを呼び出すことによってバイト配列に変換されます。次に、結果のバイト配列に対してMemoryStreamを作成します。この配列は、BitmapクラスのFromStream静的メソッドのパラメータとして機能します。

public Image Base64ToImage(string base64String) 
{ 
    // Convert Base64 String to byte[] 
    byte[] imageBytes = Convert.FromBase64String(base64String); 
    MemoryStream ms = new MemoryStream(imageBytes, 0, 
    imageBytes.Length); 

    // Convert byte[] to Image 
    ms.Write(imageBytes, 0, imageBytes.Length); 
    Image image = Image.FromStream(ms, true); 
    return image; 
} 
+0

この行にエラーが発生しました:Image image = Image.FromStream(ms、真実);エラー:FromStreamはImage – Sri

+0

の定義ではありません。ASP.Netでは、WebフォームにSystem.Web.UI.WebControls.Imageがあり、ImageUrlプロパティに表示するイメージのURLを割り当てる必要があります。 –

+0

あなたは問題に関連するすべての例を私に提供できますか? – Sri

0

これを行うには、固有のIDまたは名前のようなイメージの識別子が必要です。

ので、私はそれが簡単にめちゃくちゃいずれかをできる限りurl: "{id}.jpg"を使用しないことをお勧めしかしルート

routes.MapRoute(
       name: "ImageRoute", 
       url: "{id}.jpg", 
       defaults: new { controller = "YourController", action = "Image" } 
      ); 

の先頭に新しいルートを追加RouteConfig.cs上YourController

public void Image(string id){ 
    var base64String="";// get from id 
    byte[] bytes = Convert.FromBase64String(base64String); 

    Image image; 
    Response.ContentType = "image/jpeg"; 
    using (MemoryStream ms = new MemoryStream(bytes)) 
    { 
     image = Image.FromStream(ms); 
     image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
    } 
} 

の下でアクションを作成あなたのディレクトリにある他の物理的なイメージ url: "{controller}/{action}/{id}.jpg"

今、あなたは

<のIMG SRC = "http://www.domainname.com/[id/name].jpg />

または

を使用することができ、あなたのルートに応じて

<のIMG SRC = "http://www.domainname.com/YourController/Image/[id/name].jpg /> [画像にベース64文字列を変換して保存]の

関連する問題