将图片转换为HTML的神奇方法

Peter Bromberg 提供一种方法将图片文件转换为HTML, 非常神奇。阅读原文。下面是他提供的源码

using System;

using System.Text;

using System.IO;

using System.Web;

using System.Net;

using System.Drawing ;

namespace PAB.Web.Utils

{    

    
public class Image2Html

    
{

        
private Image2Html()

        
{            

        }


 

        
public static string ConvertImage( string imageUrl, int scale)

        
{

            WebClient wc 
= new  WebClient();

            
byte[] img = wc.DownloadData(imageUrl);

            
if(img.Length >100000return "<H1><font color=white>Sorry,Image too big for demo!</font></h1>";

            MemoryStream imgStream 
= new MemoryStream(img);

            Bitmap b 
= (Bitmap)Image.FromStream(imgStream);

            MemoryStream ms 
= new MemoryStream();

            StreamWriter SW 
= new StreamWriter(ms);

            SW.WriteLine(
"<!--%<---Clip Here-->");

            SW.WriteLine(
"<style>pre{letter-spacing:-4px;word-spacing:-4px;line-height:2px}</style>"); 

            SW.WriteLine(
"<pre><b><font size='1pt'>");    

            
for(int y=0;y<b.Height;y+=scale) 

            


                
for(int x=0;x<b.Width;x+=scale) 

                


                    SW.Write(
"<font color='#" + b.GetPixel(x,y).Name.Substring(2+ "'>"); 

                    SW.Write( ((
byte)b.GetPixel(x,y).ToArgb())>>7 ); 

                    SW.Write(
"</font>"); 

                }
 

                SW.WriteLine(); 

            }
 

 

            SW.WriteLine(
"</font></b></pre>"); 

            SW.WriteLine(
"<!--%<---Clip Here-->");

            SW.Close(); 

            SW 
= null

            
byte[] b2= ms.ToArray ();

            
string s = System.Text.Encoding.ASCII.GetString(b2);

            
return s;

        }


    }


}

posted @ 2006-07-23 12:46  活力豆  阅读(1654)  评论(0编辑  收藏  举报