在Delphi编译的可执行文件中更改图像

时间:2013-10-29 17:50:08

标签: delphi executable embedded-resource timage

我被要求做一份复杂的工作,我不知道是否可以做到。一家公司有一个用Delphi(不是那个版本)开发的应用程序,并问我是否可以更改应用程序中出现的一些图像。

使用“资源黑客”我可以看到一些东西,但我不知道这是否有用。

我举个例子:

object AboutBox1: TAboutBox1
  Left = 218
  Top = 74
  BorderStyle = bsDialog
  Caption = 'About...'
  ClientHeight = 510
  ClientWidth = 539
  Color = clActiveCaption
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  FormStyle = fsStayOnTop
  OldCreateOrder = True
  Position = poScreenCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Image1: TImage
    Left = 193
    Top = 448
    Width = 153
    Height = 49
    Picture.Data = {
      0A544A504547496D616765EF0A0000FFD8FFE000104A46494600010100000100
      010000FFDB0043000C08090A09070C0A0A0A0D0D0C0E121E1312101012241A1B
      151E2B262D2C2A2629292F35443A2F32403329293B513C4046494C4D4C2E3954
      5A534A59444B4C49FFDB0043010D0D0D12101223131323493129314949494949
      4949494949494949494949494949494949494949494949494949494949494949
      49494949494949494949494949FFC0001108002D009603012200021101031101
      FFC4001F0000010501010101010100000000000000000102030405060708090A
      0BFFC400B5100002010303020403050504040000017D01020300041105122131
      410613516107227114328191A1082342B1C11552D1F02433627282090A161718
      191A25262728292A3435363738393A434445464748494A535455565758595A63
      6465666768696A737475767778797A838485868788898A92939495969798999A
      A2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6
      D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F01000301
      01010101010101010000000000000102030405060708090A0BFFC400B5110002
      0102040403040705040400010277000102031104052131061241510761711322
      328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728
      292A35363738393A434445464748494A535455565758595A636465666768696A
      737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7
      A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3
      E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00C692
      EA71230121C6699F6BB8FF009EA6A3948F35B9EF4DC8F5AE63EA1463626FB5DC
      7FCF5347DAEE3FE7A9A8723D68C8F5A07CB126FB5DC7FCF535A08211A5D84EDF
      6A92E2EEE1E258D26C160085E063AE735919E382335AB3DF0B4B2B1834EBD398
      612B232A956DECC59B04F6E714E2FB9CF5E0E4D28916A0B7765797508924961B
      795A23385F9491FD718C81D33516ED473830DC025950029D59BEE8FA9ABDF69B
      47B08E26B90ACD6E96C8BB49F20120CB21F5624718CD49A96A163F676FB24CEE
      ED26514A91E5AAAED8F27D864F1DCD559194675745CBF8196935F4857CB49DF7
      B6D4213EF1E7A7E47F2A532EA0090D15C2E1773653EE8E793F91FC8D6B1D5618
      2E1A486E2331C51B3410A4640DC4045DC4F2CCABB8E7A67A554B7BB8974E8217
      B941BE422E0142CECACFF37CDD97600303934ACBB87B4AB6BF28C816E4D8DCDD
      DC09E34444F24B1DBB998F071DC6D04FE552E9F0CD79A65ECE905DDCDC452C71
      C690B9192DB89C803A703F3A4D4EEE096C422DC896792779662A8541ECA067B0
      03814C8A480E85158FF68081A4B869A7658D890368518C7520034D5AE2929B85
      DAD5BEC26A7E65A5ECD15B4F25C43132A19060E1C8FB99EE41C8FC2AA9B9B956
      2ACECAC3820F515AF25EC57777A8EA4AA63B38846912B9E64901040F73F2026B
      0598B31666C92724FAD4C8DA836D5A4B626FB5DC7FCF5347DAEE3FE7A9A8723D
      68C8F5A47472C49BED771FF3D4D1F6BB8FF9EA6A1C8F5A323D680E588F96E676
      500C8D4544FD28A68E6A9A4B43D8FF00B0F4BCFF00C812CFFEFDA7F85729A878
      8BC2FA75ECB6B73E1A29246C57FE3DE3C373D473D2BABD4DAE2DAC249ADB4F59
      244C1DAD2F18EFD3DABCE7E22DD2DDC9A74AB07947CB7046EDDCE477AD67751E
      647CD55ACE3B3D4D9D135AD0B51BDB947D02DD2103742C6D947E07AE7EB49A34
      F611C77D15F6936934C8C5A13F67550463EEF4E80D57B0D4AD2CB46B63291185
      8867CB4DEC6AA8F185A4824636D3BFCDB6289402CC31F798F41F866B6F723A3D
      CC3DB54BE8CE8B4697459F406D4351D2F4C8CC72323948940E0F1C75E6B3351D
      0EDADB508EE2D9ADE5B6BA265111453B14F231FECFA565DADED8EA504D05A5B9
      B69CF2E8FCFD48355358D7EDA4D45522867B28154094A0CB48C170B804F0BC74
      CF7A5CD08DA5DC4EB4A51B3DCDA9F4AB796452B1451A81CED8C7352269D66A82
      316F0EEC70590127F4A80EAF610E9715CCAF2B89388E251FBC73FD2AA1D4765E
      406F6CEE6CC4ADF234A72A7DBDAB47286C67CD3DEE68C7A75A45C35BC2DCFF00
      1229E7F2AA977A7DB5B06B868B7C6181D91440B75E8074A4D7354B2B42919732
      DC647C8321501EE4FF004152E87ACDA6A3A87D9A35954A722473F7947B76A5CF
      0BF2F50E69F7FC4CF9B59F0EE7CB7B0B9520E08585030FD6B7345D63C21BA2D3
      E5D29A290F0B25F44A4BE4F76FF22B93D31F4D8FC5B3BEA9FF001E8249370C36
      4F271F779ABDE26BBB3F126AB6565A24291A411F948D2B08F792780377A572FB
      46D6FA9B42A492BA67A69D1F4D68D50E8D6A517255762E067AE298DA2696AA4F
      F61D9F1FF4CD3FC2AB49343A0E8513EA236AC11AABCA5F3B8E3B0EE4D62CBE34
      8A0861BB9B43BA8EC663B56669065BDF6FA7E35A3696E753A96DD9BC343D3301
      9F45B5E7D11703F4A7FF0063692AC07F625A107A1F2D3FC2ABEA5AC5969BA4AE
      A5240CF04842C6AAFF0033B1E800AC87F11186E6D86A5A0DDD924AE162769720
      13D3228BA43752DD4E8BFB0F4BFF00A01D9FFDFB4FF0A4FEC4D33FE80567FF00
      7C27F8551D6B5CB2D1228FED304924F31C43044D977F7F6155A1F12C69796F6B
      AA68F71A73DD7FA9324B956F627B1E451742752DD4D7FEC4D33FE80569FF007E
      D3FC28AB621FFA7427FEDA514CAE66739AEDCEAD65A82A8B655B1986D52A72CA
      71CE4E6B8CF1D0655D3C3295F95F008F7157AF75ABA8FC4335B3B192232128A4
      FDC1D80FF1ACCD574F827BAF3A492E19E42492D2671F4E2AE7072872A3CE9CAF
      27735B4FD35BEC16EF82A3C9DC430E7A562F852D1AE04ECB81B4A8CE2B42DED7
      ECFA5C96C97375B65C12C25C103D07B547A5D825848CF14F71F3AB2901F1F8F0
      3AD37193927D89B22B69EA21F1A5D2740AEE39E292F6DE5BAF1CF910E3CC7650
      BB80233B47AF151FD8921D44CAB34E5F7E4B17E4F3DCE39AD2D4B4EB7D42E44E
      C658A4C60946EBFA547B2972AF5B826AE43E37B5B8B5D6F4FF003F112FD9D144
      D1E02B303F330C74EB4ABA3C77360F73A8DFCEF0C2C4873701948E9C67D6B7E2
      D234E9340874DBB8659FCBCB24DE6E1933D871D2AB59785746B69C4B3C33DC81
      C8479405FC7039A84ACDE97B9D0E8B6F430BC5460934FD2E5811C210E32FD5B1
      B6BA9B4D2AEE5D2ADB52D36CE12CE17722A8525471FD2A0B9F0EE8F72C0BC779
      B00C227DA72A83D06578ABB1D9DAC5A3B69B1B5EAAB367CDFB49DEBCF4071D2A
      936A4E5DC2341F5396F0D43E7FC43954DB09409A5263EC3935A5F136DEC2DE2B
      3115A476F74CE490A79298EFF8D4D0F85F4B81FCC8DEF924FEFA5C053FA2D3A2
      F0E68A973E75CC17576FD7F7B71D7EB81CD65C8F9794B54E5CBCA36692D1BC03
      6177E21B7B8976BFEE9524C198F38CFA0C679AC6F12CFA85DF87ED6E67B486C6
      C5A402D6DD3962BB4FCC49E48FCBAD74FACDBE997BA67D9DECA555420A6DB83F
      29E9C022AA45E1DD1C5A3432C37333326D577B8FF563FD918C0A72837A0E506F
      41B79631DE782AC2CA52B0DCC922242FE66479BB490AD8FBB915933C9E24F0F8
      87FB72DCDDD8F9A079770C1C1239F94F507038ADA4D0B461A57D83ECD70417DF
      E679FCEEF5C631517F655A2DE402FA4BEBE8A3E638E6B9F957F4A1C5BD41C1B7
      7EA65F8CDF778B6CEE6412DB5BC90C6518360A8E7383ED9ADBBAF0B696D0C573
      7DA9DC34431B1E4BD520E7D09F5AB9AC5BE97ACDAAC73D83214FB8E9372BFA56
      2E93E1ED1E0BC6927B79AE4467E5479405FC7028E57763E469BF33BD8A00B0A2
      A59B150A00266EB4564596A56F2DCCE3EC440046079C78FD28AD0D4FFFD9}
  end

我认为Picture.data是图像,但我不知道如何转换那个字母串。我该怎么办?我该如何改变这种形象?

谢谢!

2 个答案:

答案 0 :(得分:3)

  1. 创建一个新的VCL表单应用程序。
  2. 添加TImage组件。
  3. 保存项目。
  4. 将问题中的TImage属性文本粘贴到.dfm文件中。
  5. 运行应用程序并检查它是否显示预期的图像。
  6. 接下来,在Delphi IDE中将新图像加载到图像控件中。
  7. 将更新后的.dfm文本粘贴到资源编辑器中的表单资源中。
  8. 你可能会发现像XN资源编辑器这样的不同资源编辑器甚至可以理解Delphi TImage并让你直接修改图像。

答案 1 :(得分:0)

我会尝试为那些可能不知道如何做到这一点的人提供演练,或者只是想尽快完成这项工作。

这就是我改变代码上嵌入图像的方式,正如OP在问题上所显示的那样。

注意:接受的答案是说XN资源编辑器可以理解Delphi TImage,这似乎是错误的,或者可能并不总是有效!

您需要以下免费软件:

您可能还需要图像编辑器,那里有自由软件选项:

找出要替换的图像

如果程序有许多图像,您可以按照以下步骤找出正确的图像:

  1. 制作原始可执行文件(.exe)的备份副本。
  2. 使用资源编辑器打开包含要替换的图像的原始可执行文件(.exe)。
  3. 对于您在 RCData 下找到的每张图片,请检查图像尺寸和其他详细信息,这样可以立即为您提供正确的图像,或者至少缩小您的范围。例如,如果您正在寻找一个巨大的图像,您将忽略小图像。
  4. 删除所有图片数据,只删除 Picture.Data 属性下括号内的所有内容,使其看起来像 Picture.Data = {} 并编译脚本使用资源编辑器并使用更改保存exe。
  5. 执行应用程序,如果在程序执行期间缺少要替换的图像,则表示您刚刚删除的图像数据是要替换的图像。
  6. 您还可以通过将图像替换为另一个图像(如空白图像)来检查哪个图像是正确的,但是您必须先将图像嵌入到另一个Delphi程序中,然后复制并粘贴图像数据。新应用程序进入您自己的应用程序,请参见下文。

    更改图像

    1. 打开Lazarus IDE,打开后它应该已经为您提供了一个新的桌面应用程序,包括一个表单(Form1)。
    2. 在表单(Form1)上创建一个新的TImage,然后通过选择新的TImage并在 Objects检查器窗口选择 Picture 属性然后选择一个图像文件点击三个点按钮[...]。加载图像后,它应该出现在表单上。图像尺寸和其他属性并不重要。
    3. 使用新映像保存您的Delphi应用程序项目并进行编译。
    4. 使用资源编辑器,打开包含要替换的映像的原始可执行文件(.exe)和使用Lazarus编译的可执行文件(.exe)。
    5. 浏览新编译的可执行文件(RCData - > TFORM1),您应该在 Picture.Data 下找到新的图像数据,复制 Picture.Data 中括号之间的所有内容em>并粘贴原始可执行文件的 Picture.Data
    6. 既然原始的可执行文件具有新的图像数据,则使用资源编辑器编译脚本并使用更改保存exe。
    7. 运行应用程序并检查图像是否已成功替换。
    8. 注意:如果您在Lazarus上使用的图片是.png图片且原始可执行文件在替换TImage后没有显示任何内容,则应用程序可能只接受特定的图像文件格式< em> Picture.Data ,那么这可能就是问题所在。您可以尝试在Lazarus上使用.bmp,然后将.bmp Picture.Data 复制到原始应用程序。