5,388
社区成员
发帖
与我相关
我的任务
分享
{
jpg文件转html字符画
需要uses jpeg
MakeHtml('test.jpg', 'test.html');
@param imagefile jpg文件
@param htmlfile 输出的html文件
@return 处理成功返回true
}
function MakeHtml(const imagefile, htmlfile: string): Boolean;
var
jpg: TJPEGImage;
bmp: TBitmap;
o: TStringList;
x, y: Integer;
scolor: string;
s: string;
color: TColor;
lastcolor: TColor;
begin
Result := False;
jpg := TJPEGImage.Create;
bmp := TBitmap.Create;
o := TStringList.Create;
try
try
jpg.LoadFromFile(imagefile);
bmp.Assign(jpg);
o.Add('<HTML>');
o.Add('<BODY>');
o.Add('<STYLE>');
o.Add('.Font{font-family: Arial; font-size: 1px}');
o.Add('</STYLE>');
o.Add('<FONT CLASS="Font">');
s := '<FONT COLOR="#FFFFFF">';
lastcolor := $FFFFFF;
for y := 0 to bmp.Height - 1 do
begin
for x := 0 to bmp.Width - 1 do
begin
color := bmp.Canvas.Pixels[x, y];
if lastcolor <> color then
begin
scolor := '#' + IntToHex(GetRValue(color), 2) + IntToHex(GetGValue(color), 2) + IntToHex(GetBValue(color), 2);
s := s + '</FONT><FONT COLOR="' + scolor + '">';
lastcolor := color;
end;
s := s + 'x';
end;
o.Add(s + '<BR/>');
s := '';
end;
o.Add('</FONT></FONT>');
o.Add('</BODY>');
o.Add('</HTML>');
o.SaveToFile(htmlfile);
except
Result := False;
end;
finally
bmp.FreeImage;
bmp.Free;
jpg.Free;
o.Free;
end;
end;
{
jpg文件转html字符画
需要uses jpeg
MakeHtml('test.jpg', 'test.html');
@param imagefile jpg文件
@param htmlfile 输出的html文件
@return 处理成功返回true
}
function MakeHtml(const imagefile, htmlfile: string): Boolean;
var
jpg: TJPEGImage;
bmp: TBitmap;
o: TStringList;
x, y: Integer;
scolor: string;
s: string;
color: Integer;
lastcolor: Integer;
begin
Result := False;
jpg := TJPEGImage.Create;
bmp := TBitmap.Create;
o := TStringList.Create;
try
try
jpg.LoadFromFile(imagefile);
bmp.Assign(jpg);
o.Add('<HTML>');
o.Add('<BODY>');
o.Add('<STYLE>');
o.Add('.Font{font-family: Arial; font-size: 1px}');
o.Add('</STYLE>');
o.Add('<FONT CLASS="Font">');
s := '<FONT COLOR="#FFFFFF">';
lastcolor := $FFFFFF;
for y := 0 to bmp.Height - 1 do
begin
for x := 0 to bmp.Width - 1 do
begin
color := ColorToRGB(bmp.Canvas.Pixels[x, y]);
if lastcolor <> color then
begin
scolor := '#' + IntToHex(color, 6);
s := s + '</FONT><FONT COLOR="' + scolor + '">';
lastcolor := color;
end;
s := s + 'x';
end;
o.Add(s + '<BR/>');
s := '';
end;
o.Add('</FONT></FONT>');
o.Add('</BODY>');
o.Add('</HTML>');
o.SaveToFile(htmlfile);
except
Result := False;
end;
finally
bmp.FreeImage;
bmp.Free;
jpg.Free;
o.Free;
end;
end;
<html>
<body>
<img src="data:image/png;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAwADADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDwGON5ZFRFLOxwABkk12Np4V0/SbRL3xHc+XuGVtkPzH64/p+dL4XtbfR9Hn8SXqByuUtkPdumfz4/A1zl1fT6tqQutQkcxu4DMBwq56D6V1RjGnFSkrt7I8+c515uEHaK3a3b7I6NvF2jWX7vT9AhKDo8uMn9Cf1oXxfo15+71DQIQh6vFjI/QH9aqaz4aso9HGq6NdvdWqttk3DlffoP5dxXLU51qsHZ2+5WJo4XDVY80b39Xf8AM7S68K6fq9o954cufMKjL2rn5h9M/wBfzrjZI3ikaORSrqcFSMEGrOnajc6XeJdWshSRD+BHofUV1Xie1t9Z0aDxHZoEY4S5Qdj0z+fH4ipcY1YuUVZrdFxlUw9RQqO8Xs+qfZ/5h4zb7Homi6dHwgi8xgO5wOf1b86h0PUtLvfD7aDqcr2+ZN8c/wDCD7+nf/61TeMl+2aHoupR8oYvLcjscDj9G/KuKq61Rwqtra34WM8LRVXDJN2abfzuz1HTtJ0y68M3uk6RqIkkY/vJcdTx2/u8Y49683v7C4027ktrqMxyocEH+Y9qfpupXWlXqXVrIUkX8mHofUV6JqupaPd6BY6vq2nF3k4jjBwc855z93jP4ir9zEQ/lcfusZL2uCq9Zxm/nc8vrtfBbfa9I1nTZOUaHeoPY4Iz/L8qr69pOlzaHHrulB4Y3k2PA3RTz09On61Y8Fr9j0fWdSk4RYdin1OCcf8AoP51FGm4Vkntb8LGuKrRq4Vyjo7pfO6E8LXdvq+kT+HL1whfLWzns3XH58/ia5fUtMudKvXtbqMo6ng9mHqPaqqO0bq6MVZTkEHBBrsbTxXY6paLZeI7bzQowtyg+YfX/wCt+VQpRqxUZOzWzNJQqYeo6lNXi911T7r/ACOMrrNJ8R6c+ijStdtpbiGNswsnVR6dR/k1Ybwnod7mTT/EESoeiS4yP1B/ShfCeh2X7zUPEETIOqRYyf1J/SqhRqwd1a3qrEVsThqsVGV7ryd/yOcs7O61W9+w2IkaN3JVSThRnqa6PxRdW+j6PB4csnDsuHuXHduuPz5/AUl34qsNKtHsvDlt5W4Ya5cfMfpn+v5VxzyPLIzuxZ2OSSckmlKUacXGLu31/wAioU515qc1aK1S6t92f//Z">
</body>
</html>
{*
MakeHtml('test.jpg', 'test.html');
@param imgsrc 图片路径
@param savefile 生成的html文件名
@return 保存成功返回true
}
function MakeHtml(const imgsrc,savefile: string): Boolean;
var
f: TStringList;
begin
Result := True;
f := TStringList.Create;
try
f.Add('<IMG SRC="' + imgsrc + '" />');
try
f.SaveToFile(savefile);
except
Result := False;
end;
finally
f.Free;
end;
end;