Grafik bearbeiten, abspeichern + anzeigen lassen

Anfängerfragen zum Programmieren mit PureBasic.
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Grafik bearbeiten, abspeichern + anzeigen lassen

Beitrag von funk.munich »

Hi zusammen,

ich würde gerne eine existierende Datei bearbeiten, z.B. einen Kreis
in der Datei per Maus erstellen, danach die Änderungen abspeichern
und anzeigen lassen.

Eine Datei anzeigen zu lassen das habe ich noch hinbekommen:

LoadImage(#IMG_ID_0, "test.bmp")
ImageGadget(#GADGET_IMG_0, 3, 50, (width.l - 260), (height.l - 95), UseImage(#IMG_ID_0))

jedoch nun die Datei zu bearbeiten ... funxt einfach nicht.

Ich habe es mit StartDrawing, DrawImage ausprobiert, aber leider
ohne irgend einen Erfolg :-(

Es wäre super, wenn mir jemand hierzu einen Tipp geben könnte.

Danke + Gruß,
Daniel
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

probiers mal mit

Startdrawing(ImageOutput(...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag von funk.munich »

Hi,

ich habe es mal mit StartDrawing ausprobiert:

Code: Alles auswählen

Enumeration
  #IMG
EndEnumeration

WWidth = GetSystemMetrics_(#SM_CXFULLSCREEN)
WHeight = GetSystemMetrics_(#SM_CYFULLSCREEN)

#WINDOW_FLAGS_0 = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget

If OpenWindow(0, 0, 0, WWidth, WHeight, #WINDOW_FLAGS_0, "")

  CreateGadgetList(WindowID())
    Panel = PanelGadget(1, 3, 10, (WWidth - 50), (WHeight - 50))
      AddGadgetItem(1, 0, "Images")

      LoadImage(#IMG, "test.bmp")  
      ImageGadget(3, 5, 10, (WWidth - 100), (WHeight - 100), UseImage(#IMG))
      
      StartDrawing(ImageOutput())
      
      Box(0, 0, 20, 20 ,RGB(Random(255),Random(255),Random(255)))
      
      StopDrawing()
      
EndIf

Repeat
    
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
         Quit = 1
    EndSelect
    
Until Quit = 1

End
Das hat auch funktioniert. Aber ...
wie kann ich das nun dynamisch mit der Maus machen und dies dann
danach neu speichern?

Da stehe ich voll auf dem Schlauch.

Ich werde es einfach mal weiter ausprobieren.

Danke + Gruß,
Daniel
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nuja..
du musst dir praktisch ein PAINT selbercoden...
maus abfragen zeichenfunktionen wie circle, box, etc...
auf das image anwenden...
und speichern geht dann mit SaveImage oder so...

also, wenns nich zu wichtig für dich is, nimm lieber glei ein fertiges bildbearbeitungsprog...

ein Grafikprogramm selbst zu schreiben ist nicht grad eines der kleinsten Projekte...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Grafikprogramm selbst zu schreiben ist nicht grad eines der kleinsten Projekte
Jup, siehe Signatur <)

Also, folgendermaßen mach ich das:

Hab ein Hauptbild und ein Zeichenbild.

Wenn die nachricht kommt "Huhu, mauss wurde gedrückt", setz ich den Zeichenmodus auf 1 (oder 2, halt so verändern, dasss du weißt, dass die Maus unten ist.) Dann merkste dir den Punkt, an dem die Maus grad is.

Wird die Maus bewegt, machste folgendes: Frag, wo die Maus grad ist, berechne über Pythagoras die Breite des Kreises, kopier das hauptbild aufs zeichenbild, mal den Kreis druf und zeigs auf dem Gadget an.

Wird die Maus dann losgelassen, machste einfach dat ganze auf dem Hauptbild, feddich.

Aber mehr Tips gibt´s net, ich will die Konkurrenz klein halten
:mrgreen: *Scherz*
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Antworten