TPNGObject mit TImage - TypeCast - Problem



  • Hallo!

    Benutzt noch jemand die schöne PNG - Komponente von http://pngdelphi.sourceforge.net ?

    Ich habe dazu nämlich eine Frage / Problem:
    Und zwar habe ich in einem TImage->TPicture ein PNGObject geladen. Das geht ja ganz einfach über den Bild-Editor (oder über Picture->Assign() ).
    Nun möchte ich jedoch einzelne Pixel-Werte werändern. Dies geht laut Dokumentation über die Property "TPNGObject->Pixels[x,j]=TColor".

    Nun weiß ich nicht, wie man auf "Pixels[]" zugreifen kann, wenn mein TPNGObject in diesem TImage "steckt". Da es abgeleitet davon ist, muss man ja irgendwie an die Eigenschaft "Pixels" kommen.

    TImage->Picture->Pixels[1,1]
    

    und

    TImage->Picture->Graphic->Pixels[1,1]
    

    haben bei mir nicht zum erfolg geführt.

    Zusatz:
    Ich habe noch dies ausprobiert, aber irgendwie will der Compiler noch zustäzliche Argumente haben, aber eigentlich habe ich alles angegeben:

    ((TPNGObject *)Image2->Picture->Graphic)->Pixels[1,1]=clRed;
    

    Kann mir jemand helfen?

    Zitat aus der Doku zu TPNGObject:

    This is the main object for the component. By default it's derived from TGraphic in order to integrates with Delphi and to be able to be used with TPicture, TImage and many others. To gain access to when using TImage or TPicture, typecast the TImage.Picture.Graphic or TPicture.Graphic to TPNGObject. The object provides access to some interesting and important features.



  • Hallo

    versuch mal den Cast und Arrayzugriff :

    TPNGObject *PNGObject = [b]dynamic_cast[/b]<TPNGObject *> (Image2->Picture->Graphic);
    if (PNGObject != NULL) PNGObject->Pixels[b][1][1][/b] = clRed;
    

    bis bald
    akari



  • Hallo!

    Hey, funktioniert super! Ich kann alle einzelnen Pixel-Werte abrufen.
    Auch das rot-färben klappt jetzt 🙂
    Viele Grüße


Anmelden zum Antworten