horizontal spiegeln

Anfängerfragen zum Programmieren mit PureBasic.
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

horizontal spiegeln

Beitrag von pws32 »

Hallo,

ich möchte gerne ein Bild horizontal spiegeln unter OSX und Windows
als Beispiel möchte ich einen Helm der von der linken Seite fotografiert ist, also nach links zeigt
anschließend nach rechts zeigt so als wenn er von rechts fotografiert ist
ich habe schon eine weile in allen Foren gesucht aber nichts gefunden
kann mir jemand auf die Sprünge helfen?
wenn es geht sollte es nicht Windows spezifisch sein weil ich gerade dabei bin ein Programm
unter Windows und OSX zu schreiben

Viele Grüße
ich weis das ich nix weis
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: horizontal spiegeln

Beitrag von NicTheQuick »

Ich glaube das geht mit TransformSprite(), wenn du eine negative Breite oder Höhe nutzt. Ich kann es leider gerade nicht testen. Sitze ohne Laptop im Fernbus.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: horizontal spiegeln

Beitrag von STARGÅTE »

Ergänzung:
Eine Spiegelung eines Sprites geht leider nur unter OpenGL, unter DirectX9 bzw 11 ist immer das Back-Face-Culling aktiv.
Unter OpenGL kann man somit auch ZoomSprite(Sprite, -Width, Height) nutzen um zu spiegeln.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
kutta
Beiträge: 40
Registriert: 04.07.2005 09:48

Re: horizontal spiegeln

Beitrag von kutta »

Nabend mit
Point und Plot und nem Array kannste es auch probieren, ist aber laaangsam..
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

Re: horizontal spiegeln

Beitrag von pws32 »

Danke!! habe schon einen Tip aus dem englischen Forum:

What you are looking for is this really excellent code by Luis: http://www.purebasic.fr/english/viewtop ... 12&t=38975

läuft klasse unter Windows und OSX Yosemite

Viele Grüsse
ich weis das ich nix weis
pws32
Beiträge: 52
Registriert: 27.09.2004 12:33

Re: horizontal spiegeln

Beitrag von pws32 »

Hallo, im englischen Forum hat mir jemand einen Code gepostet der sehr gut funktioniert, ich poste den mal hier vielleicht kann das ja jemand mal gebrauchen und das schöne ist das er unter Windows, OSX und Linux läuft

Viele Grüße

Code: Alles auswählen


UseJPEGImageEncoder()
UsePNGImageDecoder()  

UsePNGImageDecoder()
UsePNGImageEncoder()

Filename$ = OpenFileRequester("Choose an image", "", "PNG|*.png", 0)
If Len(Filename$)
  OrgImg = LoadImage(#PB_Any, Filename$)
  If OrgImg
    
    Width = ImageWidth(OrgImg)
    Height = ImageHeight(OrgImg)
    
    NewImg = CreateImage(#PB_Any, Width, Height, 32, #PB_Image_Transparent) ; <---------------- Changed line
    If NewImg
      
      If StartDrawing(ImageOutput(NewImg))
        
        For x = Width - 1 To 0 Step -1
          StripeImg = GrabImage(OrgImg, #PB_Any, x, 0, 1, Height)
          If StripeImg
            DrawAlphaImage(ImageID(StripeImg), Width - x - 1, 0) ; <--------------------Changed line
            FreeImage(StripeImg)
          EndIf
        Next x
        
        StopDrawing()
        SaveImage(NewImg, Filename$ + ".mirrored.png", #PB_ImagePlugin_PNG)
        
      EndIf
      
      FreeImage(NewImg)
    EndIf
    
    FreeImage(OrgImg)
  EndIf
EndIf
ich weis das ich nix weis
Antworten