XbpBitmap drehen?
Moderator: Moderatoren
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
XbpBitmap drehen?
Hallo,
weiß jemand, wie man eine Grafik (XbpBitmap) drehen kann (90 bzw. 180°)?
weiß jemand, wie man eine Grafik (XbpBitmap) drehen kann (90 bzw. 180°)?
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpBitmap drehen?
GraRotate()?
Jan
PS: Ich sehe gerade, das die Online-Hilfe sagt, das ein Drehen von Rastergrafiken nicht möglich ist. Jedenfalls nicht offiziell.
Jan
PS: Ich sehe gerade, das die Online-Hilfe sagt, das ein Drehen von Rastergrafiken nicht möglich ist. Jedenfalls nicht offiziell.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: XbpBitmap drehen?
Hi Jan,
daran habe ich auch gedacht, aber da steht:
daran habe ich auch gedacht, aber da steht:
Mal davon ab, dass das seltsames Deutsch ist, bedeutet das wohl, dass man damit Pixelgrafiken nicht drehen kann... (Für den Satz dürfte ich auch keinen Preis für tolles Deutsch bekommen )Hinweis: Bei Rastergrafiken (Bitmaps) können weder Matritzenoperationen berechnet noch können sie rotiert werden.
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: XbpBitmap drehen?
Moin,
früher (bei der Vorlesung Graphische Datenverarbeitung) haben wir das einfach händisch gemacht: Bitmapdaten zeilenweise gelesen und Spaltenweise (um zu drehen) bzw. rückwärts (um zu spiegeln) in einem neuen Bitmapobjekt weggeschrieben.
Viele Grüße,
Martin
früher (bei der Vorlesung Graphische Datenverarbeitung) haben wir das einfach händisch gemacht: Bitmapdaten zeilenweise gelesen und Spaltenweise (um zu drehen) bzw. rückwärts (um zu spiegeln) in einem neuen Bitmapobjekt weggeschrieben.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: XbpBitmap drehen?
grabitblit oder so ähnlich heißt ein Befehl der das kann.
Ich habe mal ein Uhrbeispiel veröffentlicht in dem ich den nutze um die Größe anzupassen und ich meine dabei könnte man auch drehen.
Jimmy hat auch was dazu geschrieben.
Ich habe mal ein Uhrbeispiel veröffentlicht in dem ich den nutze um die Größe anzupassen und ich meine dabei könnte man auch drehen.
Jimmy hat auch was dazu geschrieben.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: XbpBitmap drehen?
die "alte" Methode wäre jeder Pixel "lesen/setzten" mitMarkus Walter hat geschrieben:weiß jemand, wie man eine Grafik (XbpBitmap) drehen kann (90 bzw. 180°)?
Code: Alles auswählen
DLLFUNCTION SetPixelV( hdc, x, y, crColor ) USING STDCALL FROM GDI32.DLL
DLLFUNCTION GetPixel( hdc, x, y ) USING STDCALL FROM GDI32.DLL
Code: Alles auswählen
RETURN IF(DllCall("Gdi32.dll",DLL_STDCALL,"PlgBlt", nDestDC, cVertices, nSourceDC, aPos1[1]+1, aPos1[2], aSize1[1], aSize1[2], nBitMapHandle, 0, 0)==0,.F.,.T.)
gruss by OHR
Jimmy
Jimmy
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: XbpBitmap drehen?
Hallo Hubert,brandelh hat geschrieben:grabitblit oder so ähnlich heißt ein Befehl der das kann.
Ich habe mal ein Uhrbeispiel veröffentlicht in dem ich den nutze um die Größe anzupassen und ich meine dabei könnte man auch drehen.
Jimmy hat auch was dazu geschrieben.
GraBitBlt ist ja mein Problem. Das verträgt sich ganz offensichtlich nicht mit unterschiedlicher Koordinaten-System-Ausrichtungen von Quelle und Ziel. Ich nutze das beim Ownerdrawing und die Quelle ist BottomLeft und das Ziel TopLeft. Und dann kommt es zu Dreh-/Spiegeleffekten. Drehen und Spiegeln kann GraBitBlt aber wohl nicht (zumindest erschließt sich das mir nicht aus der Doku).
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: XbpBitmap drehen?
Hm, um das zu nutzen, müsste ich an den DC eines MicroPS kommen?! Und da liefert :device() NIL...AUGE_OHR hat geschrieben:was bei grösseren Bildern einen erheblichen Unterschied ausmacht.Code: Alles auswählen
RETURN IF(DllCall("Gdi32.dll",DLL_STDCALL,"PlgBlt", nDestDC, cVertices, nSourceDC, aPos1[1]+1, aPos1[2], aSize1[1], aSize1[2], nBitMapHandle, 0, 0)==0,.F.,.T.)
Aber ich habe zwischenzeitlich eine Lösung ausserhalb von Xbase gefunden.
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: XbpBitmap drehen?
Hi Martin,Martin Altmann hat geschrieben:früher (bei der Vorlesung Graphische Datenverarbeitung) haben wir das einfach händisch gemacht: Bitmapdaten zeilenweise gelesen und Spaltenweise (um zu drehen) bzw. rückwärts (um zu spiegeln) in einem neuen Bitmapobjekt weggeschrieben.
schon klar, aber für meine Zwecke viel zu langsam...
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: XbpBitmap drehen?
Hi,
da habe ich mich wohl geirrt, im Internet gibt es hier eine Anleitung, allerdings in C++
http://www.codeguru.com/cpp/g-m/gdi/art ... tPixel.htm
oder das hier
http://www.codeguru.com/cpp/g-m/bitmap/ ... -image.htm
da habe ich mich wohl geirrt, im Internet gibt es hier eine Anleitung, allerdings in C++
http://www.codeguru.com/cpp/g-m/gdi/art ... tPixel.htm
oder das hier
http://www.codeguru.com/cpp/g-m/bitmap/ ... -image.htm
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: XbpBitmap drehen?
auch nicht schlecht ...brandelh hat geschrieben:http://www.codeguru.com/cpp/g-m/gdi/art ... tPixel.htm
oder das hier
http://www.codeguru.com/cpp/g-m/bitmap/ ... -image.htm
ich "denke" aber das die Method von Simon die "richtige" für ein Bitmap wäre http://msdn.microsoft.com/en-us/library ... 85%29.aspx
unter Bitmap Functions ist die API PlgBlt http://msdn.microsoft.com/en-us/library ... 85%29.aspx aufgeführt
MicroPS ist ja Xbase++ "spezifisch". von einen "normalen" Presspace bekommst du den hDC mit o:lockPS()Markus Walter hat geschrieben:Hm, um das zu nutzen, müsste ich an den DC eines MicroPS kommen?! Und da liefert :device() NIL...
ok das geht natürlich auch ...Markus Walter hat geschrieben:Aber ich habe zwischenzeitlich eine Lösung ausserhalb von Xbase gefunden.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: XbpBitmap drehen?
Im PowerBasic Forum habe ich code zu PlgBlt gefunden, mit dem sowas gehen soll.
Ich bin allerdings noch nicht dazu gekommen. Nach der M$ Beschreibung die Jimmy
verlinkt hat, kann ich in den Parametern aber nicht erkennen wie die Drehung funktionieren soll ...
Was hast du jetzt für eine Lösung, gibt es eine Tool das dies "ferngesteuert" erledigen kann ?
Ich bin allerdings noch nicht dazu gekommen. Nach der M$ Beschreibung die Jimmy
verlinkt hat, kann ich in den Parametern aber nicht erkennen wie die Drehung funktionieren soll ...
Was hast du jetzt für eine Lösung, gibt es eine Tool das dies "ferngesteuert" erledigen kann ?
Gruß
Hubert
Hubert
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: XbpBitmap drehen?
Hallo Hubert,
die Bitmap kam sowieso aus einer Fremd-DLL und dort haben wir sie jetzt auch gedreht...
die Bitmap kam sowieso aus einer Fremd-DLL und dort haben wir sie jetzt auch gedreht...
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz