gif dateien im CTreeCtrl darstellen?!?



  • Ehm, nein, nicht von einem Mauszeiger. Sorry, wenn ich mich unklar ausgedrückt hab.
    Vielleicht gehört das auch in einen eigenen Thread.

    Ich habe ein Programm, welches auf einem Satellitenbild anhand per LAN eingehender Navigationsdaten die Position eines autonomen Unterwasserfahrzeugs (AUV) darstellt. Es wird pro neu eingegangenem Datensatz zunächst das Satellitenbild neu "gezeichnet" und dann darüber quasi ein kleines gelbes Quadrat als Positionsanzeiger des AUVs.

    Jetzt wäre es eben schön, nicht ein Quadrat zu haben, sondern einen Pfeil, der eben auf den Positionspunkt zeigt und gleichzeitig die Richtung, in die sich das AUV bewegt.



  • http://www.codeproject.com/bitmap/ ... da findest de nen paar Klassen, die dir zeigen, wie du das mit der Transparenz hinbekommst... und sollte auch nen Beispiel bei sein, wie du das Bild rotieren kannst...

    z.B.: High quality image rotation (rotate by shear) oder
    Anti Aliased Image Rotation zum rotieren und dann einfach Load JPEG and (transparant) GIF picture files from a resource in 3 lines code um die Gif-Datei anzuzeigen... aber am besten guckst du dir das nur an und versuchst das dann selbst zu Programmieren... den einfach copy&past bringt NIX!



  • Vielen Dank zunächst mal.

    Ich konnte meinen VehiclePointer jetzt durch nen Pfeil ersetzen. Das ist schon mal ein kleiner Erfolg.

    Die Rotationsbeispiele, die du mir da gepostet hast, scheinen nicht so ganz auf mein Problem zu passen.

    Ich möchte ja nicht ne Quelldatei rotiern lassen, um am Ende ne neue Bitmap zu haben.

    Ich möchte, dass er mir den Pfeil, den ich jetzt als VehiclePointer hab während der Laufzeit des Programms rotiert. Und zwar um die Gradzahl, die grad übers LAN reinkommt.

    Vielleicht ist das ne Nummer zu groß für jemanden, der nicht wirklich Ahnung von C++ hat 😕



  • Vielleicht hilft dir ja die folgende Library weiter
    http://www.codeproject.com/bitmap/cximage.asp
    http://www.xdp.it/cximage.htm <- Neuere Version



  • Sahne, is dat kompliziert mit die Programmiererei 🙂

    Naja, also dafür, dass ich bisher nur eine einwöchige C-Schulung absolviert hab, bin ich relativ gut zufrieden.

    Aber irgendwie ist es doch sehr gewöhnungsbedürftig, dass man nicht einfach sagen kann: Nimm dir die Datei Bild1.gif, dreh die um 22.5° und zeig sie an Position x, y.

    Die CxImage Funktion Rotate2 sieht schon ziemlich genau nach dem aus, was ich suche. Aber versteh ichs richtig, dass der dabei jedesmal die komplette Datei dreht?

    Zudem hab ich spontan mal überhaupt keine Ahnung, wie man sone Library in ein Projekt einfügt und wie man dann noch drauf zugreift. 😕

    Trotzdem vielen Dank!

    Vielleicht sollte ich mich mal registrieren. Hier werd ich mich in Zukunft bestimmt öfter aufhalten... 👍



  • a_s schrieb:

    Sahne, is dat kompliziert mit die Programmiererei 🙂
    Die CxImage Funktion Rotate2 sieht schon ziemlich genau nach dem aus, was ich suche. Aber versteh ichs richtig, dass der dabei jedesmal die komplette Datei dreht?

    Kann ich dir leider auf anhieb nicht sagen, da ich nur weiß das diese Library es kann. Selbst habe ich bis jetzt noch nicht damit gearbeitet. Würde sagen, teste es doch mal einfach aus. Normalerweise dürfte er aber ohne das du speicherst die Originaldatei nicht verändern.



  • Hm, ok, also zunächst hab ich die Idee, unbedingt n Gif einbauen zu müssen, mal wieder verworfen.
    Ich hab ne Bitmap genommen und die mit MERGEPAINT eingebaut. Da wird aus nem blauen Pfeil auf weißem Hintergrund ein gelber Pfeil mit "transparentem" Hintergrund. Transparent, weil die Farbcodes addiert werden und die Sourcedatei zunächst invertiert. Also wird weiß zu schwarz und die Farbe, die dann zu schwarz dazuaddiert wird, bleibt erhalten, weil z.B. 0+5 immernoch 5 ist.

    Jetzt versuche ich die Anti Aliased Image Rotation anzuwenden, die (D)Evil mir gepostet hat. Da haperts noch ein wenig, aber morgen klappts bestimmt 🙂



  • Vieleicht täusche ich mich ja aba Das funzt doch mit ner image list und da kannst du doch nen mask wert angeben. Und dann haste doch das was du willst nen transparenten bereich drum herum



  • Hm, Imagelist und Maskwert sagen mir z.B. gar nix 🙂 Aber wie gesagt, ich habs mit dem MERGEPAINT hinbekommen. Klappt sehr gut.



  • Es tut 🙂

    Der VehiclePointer rotiert nu den eingehenden Daten entsprechend.

    Sehr fein.

    Vielen Dank!


Anmelden zum Antworten