看起來像一個PNG圖像(它是一個100x100透明像素的圖像)。您可以使用following function這個十六進制字符串轉換成字節數組,並將其保存到一個文件:
class Program
{
static void Main()
{
var data = "89504e470d0a1a0a0000000d4948445200000103000000cf0806000000f18cb4b00000000473424954080808087c086488000000097048597300000b1200000b1201d2dd7efc00000016744558744372656174696f6e2054696d650031322f32372f3131cce39cd90000002674455874536f667477617265005245534f5552434553204e4f54205553454420464f5220454e47494e45f6c2e0720000200049444154789cec9d779c5d5775efbffbf473fb748d7aefdd922c775bd84e6c638a1d20b4600831844e48422f2f24218440c80b2fe5250412420fa1d9e082255bb66cc956b7ba2c8d6634bddeb9fdb4bddf1fe76a2cd932312f8065657e9fcffd7c";
var buffer = StringToByteArray(data);
File.WriteAllBytes("test.png", buffer);
}
static byte[] StringToByteArray(string hex)
{
return Enumerable
.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
}
如果你想在ASP.NET動態顯示它您可以編寫一個通用的處理程序,這將有助於該圖像:
public class MyImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/png";
var data = "89504e470d0a1a0a0000000d4948445200000103000000cf0806000000f18cb4b00000000473424954080808087c086488000000097048597300000b1200000b1201d2dd7efc00000016744558744372656174696f6e2054696d650031322f32372f3131cce39cd90000002674455874536f667477617265005245534f5552434553204e4f54205553454420464f5220454e47494e45f6c2e0720000200049444154789cec9d779c5d5775efbffbf473fb748d7aefdd922c775bd84e6c638a1d20b4600831844e48422f2f24218440c80b2fe5250412420fa1d9e082255bb66cc956b7ba2c8d6634bddeb9fdb4bddf1fe76a2cd932312f8065657e9fcffd7c";
var buffer = StringToByteArray(data);
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
}
private byte[] StringToByteArray(string hex)
{
return Enumerable
.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
public bool IsReusable
{
get { return false; }
}
}
而且在某些Web表單要顯示它您可以使用一個圖像控件指向這個處理程序:
<asp:Image ID="img" runat="server" ImageUrl="~/MyImage.ashx" />
或一個簡單的靜態<img>
標籤,如果你喜歡:
<img src="<%= ResolveUrl("~/MyImage.ashx") %>" alt="" />
另一種可能性是使用Data URI scheme(假設你的客戶端瀏覽器都支持它):
<img src="data:image/png;base64,<%= MyImageData() %>" alt="" />
其中MyImageData
功能,可以在你的代碼中定義的背後:
public partial class _Default : System.Web.UI.Page
{
protected string MyImageData()
{
var data = "89504e470d0a1a0a0000000d4948445200000103000000cf0806000000f18cb4b00000000473424954080808087c086488000000097048597300000b1200000b1201d2dd7efc00000016744558744372656174696f6e2054696d650031322f32372f3131cce39cd90000002674455874536f667477617265005245534f5552434553204e4f54205553454420464f5220454e47494e45f6c2e0720000200049444154789cec9d779c5d5775efbffbf473fb748d7aefdd922c775bd84e6c638a1d20b4600831844e48422f2f24218440c80b2fe5250412420fa1d9e082255bb66cc956b7ba2c8d6634bddeb9fdb4bddf1fe76a2cd932312f8065657e9fcffd7c";
var buffer = StringToByteArray(data);
return Convert.ToBase64String(buffer);
}
private byte[] StringToByteArray(string hex)
{
return Enumerable
.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
}
這個二進制值代表什麼?你從哪裏得到它的? – Oded 2012-01-11 14:02:32
看起來不像base64 – 2012-01-11 14:05:07
按鍵盤上的「打印屏幕」鍵 – 2012-01-11 14:05:36