Error loading PNG image as glyph at Designtime: "Invalid graphic format"

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #36289
    wesson
    Participant

    This occur on both XE6 and XE7, with Alphaskin 9.13 (and a few other before)

    Steps to reproduce:

    1 – Alphaskin must be compiled with the setting {$DEFINE USEPNG} in sDefs.inc file.

    2 – compile and install the designtime package.

    3 – Create a new VCL form Application

    4 – Drop a TsSpeedButton (or a TSpeedButton)

    5 – Click on the Glyph property, click Load in the Delphi picture editor, and browse for a PNG image (*.png extension should be in the possible extensions)

    6 – The PNG image will appear in the Picture editor. Then Click OK

    Expected:

    It loads

    Actual:

    And Error dialog POP with “Invalid graphic format.”, and nothing is loaded.

    #52459
    Support
    Keymaster

    Hello!

    XE6 has own support of Png. Why you uses third-party component for that?

    #52481
    wesson
    Participant
    'Support' wrote:

    Hello!

    XE6 has own support of Png. Why you uses third-party component for that?

    Because the so-called 3rd-party component (PngComponents) bring the TPngImageList with extra features.

    Also because it is said to be supported in Alpha Controls, which was one of our key requirements. When using PNG images list in your controls, the rendering is done with full alpha support, in a much better (and simpler) way than with regular image list / mask maps combination, especially with the transparency.

    So I am sorry to tell you that I am a little bit disappointed by your answer, which can be summed up as “I claim in my library to have support for something, and when someone find out it's not the case, I explain him that he should avoid the feature instead of trying to fix it.”. Should I regret the license I have purchased ?

    And on a strict developper point of view, PngComponent source is regularly updated from the Embarcadero website, which mean it can be considered as officially supported by Delphi. Also the fact that I suspect the support of PNG images is fairly broken in Delphi for the Designtime. On a straight IDE installation, dropping a speedbutton on a form and loading a glyph will not provide PNG as possible image format. However if Alphacontrol is installed, the PNG option is appearing but the loading doesn't work. So I assume it's not related to the inclusion of PNGComponent, but to the fact that adding Alphacontrol will add PNG to the possible format list, but then fail to load properly the image.

    What can I say more ?

    #52482
    Support
    Keymaster

    Hello! It was just a question which was asked by other reasons 🙂

    I'm sorry for a trouble, this error is not linked with PngComponents (the issue exists without PncComponents installed also).

    I know a reason of the problem, it's a conflict of different handlers of Png format.

    Now I'm in searching of good solution, but I can suggest a quick solution already:

    – Open the sDefaults.pas file and change the “ACPngFirst” global variable to True there

    – Rebuild the acntDelphiXE7_R.dproj file with this changed variable, the problem must be solved.

    Please, try it and write me about a result.

    PS. Discussion about PngComponents is interesting for me still (if you has a time for that).

    If you uses some useful features of this library, then maybe I will implement it in the acPNG and TsAlphaImageList.

    #52491
    wesson
    Participant

    Hello, then it's my turn to say I'm sorry for being harsh, I was under the impression that you didn't ever wanted to provide a solution.

    I can confirm that turning ACPngFirst variable to TRUE solve the loading issue.

    'Support' wrote:

    PS. Discussion about PngComponents is interesting for me still (if you has a time for that).

    If you uses some useful features of this library, then maybe I will implement it in the acPNG and TsAlphaImageList.

    In fact, since we have purchased Alphaskin, we are in the process of replacing all PNG ImageList with TsAlphaImageList. But it takes some time.

    One interesting feature in PngImageList is the ability to give a name to every image.

    #52492
    Support
    Keymaster
    'wesson' wrote:
    One interesting feature in PngImageList is the ability to give a name to every image.

    Interesting idea, thank you. I will think about it also.

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.