SaveImage() - Monochrom

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
onny
Beiträge: 400
Registriert: 27.04.2005 17:50
Kontaktdaten:

SaveImage() - Monochrom

Beitrag von onny »

Wie kann ich ein Image als BMP speichern und zwar monochrom?
thx schonmal für alle antworten :allright:
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Beitrag von Sicro »

Hallo onny,

du kannst ein farbiges Bild einfarbig abspeichern, indem du das Bild vorher in ein einfarbiges Bild umwandelst.
Nachfolgend eine Prozedur, die ein farbiges Bild in ein graues Bild umwandelt:

Code: Alles auswählen

Procedure.l ConvertToGray(Image.l)
  Protected iHeight.l, iWidth.l, pColor.l

  If StartDrawing(ImageOutput(Image))
    For iHeight = 1 To ImageHeight(Image)
      For iWidth = 1 To ImageWidth(Image)
        pColor = Point(iWidth,iHeight)
        pColor = (Red(pColor) * 77 + Green(pColor) * 150 + Blue(pColor) * 28) / 255
        pColor = RGB(pColor,pColor,pColor)
        Plot(iWidth,iHeight,pColor)
      Next
    Next
    StopDrawing()
    ProcedureReturn #True
  EndIf
EndProcedure
Mfg DerProgger
Benutzeravatar
onny
Beiträge: 400
Registriert: 27.04.2005 17:50
Kontaktdaten:

Beitrag von onny »

danke!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

sorry, DP, das ist nicht ganz richtig so.

du hast zwar ein grauton-bild draus gemacht, aber das hat immer noch 24bit farbtiefe.
als monochrom bezeichnet man ein bild mit 1bit farbtiefe.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dann machs doch besser ;-)

Wenns gar nicht anders geht, waru mnicht um die Ecke denken?
1. OpenScreen mit 1 Bit Farbtiefe öffnen
2. Bild als monochromes Sprite laden
3. Screenshot schießen, geht glaube ich mit GrabSprite()
4. Abspeichern

SOnst wüsst ich auch nichts... :-|
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Dann machs doch besser

wasn das für ne schei$-antwort?

nur weil ich nicht hokuspokus ne lösung hab, darf ich nicht sagen, dass ne andere lösung nicht den erfordernissen entspricht?

wobei - ich schätze, dass die lösung von DP durchaus onny's wünschen entspricht, dass allerdings onny keinen schimmer hat, was monochrom bedeutet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Du hast wohl das :wink: nicht gesehen, was? Brauchst du eine neu 8) ?
Das war keineswegs eine Anmache und ich hatte nicht im Entferntesten vor, dich anzusaugen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja psst schon. sorry, bin etwas blank mit den nerven heut.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

pColor = (Red(pColor) * 77 + Green(pColor) * 150 + Blue(pColor) * 28) / 255
Uiih, wo hast Du die Gewichtung der einzelnen Kanäle her?
Ist das irgendwie "Standard"?

Gruß Markus
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> Ist das irgendwie "Standard"?
Klar...
Bild
Antworten