16进制保存成文件,要存成执行文件类型,不要存成文本

delphi 中 怎么把16进制内容,比如BA10000E1FB409CD21B8014CCD219090546869732070726F6772616D206D7573742062652072756E20756E6465722057696E33320D0A24370000000000000000
保存成图上这种形式的图片图片说明

开一个数组,循环,每2个字符转换一个byte,然后filestream保存
另外你这个可不是可执行文件,可执行文件的前两三个字节是 !MZ

你到底是想存成什么类型?标题说是执行文件,问题后面又说是图片。
如果是执行文件,既然你得到的就是16进制内容,假设是一个变量theforever,那么就这样写:
var
fs:TFileStream;
theforever:array[0..1024]of byte;

fs:=TFileStream.Create('你要保存的文件名称',frReadWrite);
fs.Read(theforever,sizeof(theforever));

如果是要产生显示那样内容的图片文件,就要下面的步骤:
1. 首先放置一个图片控件。
2. 遍历theforever字节数组,把每一个字节数据转换成字串,在图片上把字串打印在适当位置上(自己计算出每个字符的移位间隔和是否需要换行绘制)。
3. 上面这一步,也可以用整行打印的或排版好全部的字串之后整体打印在图片上。
4. 最后用图片控件的保存为文件方法存成图片文件。

另外,也可以把字串绘制输出在窗体或者放置在MEMO控件中,然后调用API抓图。
这方面的源码可以参考这里

上面把文字写到图片里的代码,我从以前的源码里找了一份:

Delphi:

procedure TForm1.Button1Click(Sender: TObject);
begin
    DrawStrToPicAndSave('D:\背景图片.jpg','要写入图片的文字','D:\要保存的新图片.jpg');
end;
function TForm1.DrawStrToPicAndSave(strOldImgPath, strSaveText,strNewPicPath: string): TBitMap;
var
    jp1, jp: TJPEGImage;
    bmp_t: TBitmap;
begin
    try
        jp1 := TJPEGImage.Create;
        jp := TJPEGImage.Create;
        bmp_t := TBitmap.Create;
        try
            jp1.LoadFromFile(strOldImgPath);
            try
                if (jp1.Width > 0) or (jp1.Height >0) then
                begin
                    bmp_t.Assign(jp1);
                    bmp_t.Transparent := True;
                    bmp_t.Canvas.Font.Color :=clRed; // 新建个水印字体颜色
                    bmp_t.Canvas.Pen.Style:=psClear;
                    bmp_t.Canvas.Brush.Style := bsClear;
                    bmp_t.Canvas.Font.Size := 18;
                    bmp_t.Canvas.Font.Name := 'System';
                    bmp_t.Canvas.TextOut(0,5,strSaveText); // 加入文字
                    jp.Assign(bmp_t);
                    jp.SaveToFile(strNewPicPath);
                    Result := bmp_t;
                end;
                bmp_t.Assign(jp);
                Image1.Picture.Bitmap.Assign(bmp_t);
            finally
                if assigned(bmp_t) then
                    bmp_t.Free;
            end;
        finally
            jp1.Free;
            jp.Free;
        end;
    except
        Result := nil;
    end;
end;