Frage zu einem Programm aus dem CodeArchiv - Fehlermeldung
Verfasst: 22.09.2013 07:45
Hallo,
ich habe versucht ein einfaches Programm aus dem CodeArchiv zum laufen zu bekommen. Es bricht aber immer mit einer Fehlermeldung ab und ich kann den Fehler nicht finden. Vielleicht könnt ihr mir helfen.
Das Programm soll ein Bild laden und alles in Grauwerte umwandeln.
Leider bricht das Programm in der Zeile 39 (da wird der Befehlt point verwendet) mit dieser Fehlermeldung ab: [ERROR] Point() is outside the drawing area.
Diese Fehlermeldung verstehe ich nicht, da doch die Breite und Höhe vorher ermittelt worden ist.
Ich arbeite mit der Version 5.20 LTS (x86) und Windows 7 64 bit
Grüße Jörn
ich habe versucht ein einfaches Programm aus dem CodeArchiv zum laufen zu bekommen. Es bricht aber immer mit einer Fehlermeldung ab und ich kann den Fehler nicht finden. Vielleicht könnt ihr mir helfen.
Das Programm soll ein Bild laden und alles in Grauwerte umwandeln.
Leider bricht das Programm in der Zeile 39 (da wird der Befehlt point verwendet) mit dieser Fehlermeldung ab: [ERROR] Point() is outside the drawing area.
Diese Fehlermeldung verstehe ich nicht, da doch die Breite und Höhe vorher ermittelt worden ist.
Ich arbeite mit der Version 5.20 LTS (x86) und Windows 7 64 bit
Grüße Jörn
Code: Alles auswählen
; www.PureArea.net
; Author: DEU.exe (updated for PB4.00 by blbltheworm)
; Date: 13. December 2003
; OS: Windows
; Demo: Yes
;
; Konvertiert Bild in Graustufen
; by DEU.exe, 13.12.03
;
; Einfachere (aber langsamere!) Alternative zu ChangeImageColorChannel.pb u.a.
; Dieser Code sollte einfach, für Anfänger durchschaubar und mit BASIC-Befehlen realisiert werden.
;
;
; Hier kann man mit verschiedenen Werten experimentieren:
; z.B. rechnet das Zeichenprogramm Gimp mit:
; 0,3/0,53/0,11
; Eine etwas neutralere Angleichung ist:
; 0,4/0,3/0,3
; danach mit 100 multiplizieren:
redlight=30 : greenlight=53 : bluelight=11
; total = RGB-lights, unterschiedliche Intensität der Farbanteile, zusammen 100:
total = redlight + greenlight + bluelight
; Testimage laden (muß vorhanden sein) & aktivieren:
LoadImage(1,"PureBasic.bmp")
Debug "Höhe " + ImageHeight(1)
Debug "Breite " + ImageWidth(1)
StartDrawing(ImageOutput(1))
; Konvertieren Anfang:
For y= 0 To ImageHeight(1)
For x= 0 To ImageWidth(1)
;Farbwert eines Punktes ermitteln:
p=Point(x,y)
;jeden Farbkanal extra auslesen, mit Lichtanteilen multiplizieren,
;Rot+Grün+Blau addieren und durch 'total' dividieren:
grau=(Red(p)*redlight+Green(p)*greenlight+Blue(p)*bluelight) / total
;Punkt neuschreiben und jeden Kanal extra angeben:
Plot(x,y,RGB(grau,grau,grau))
Next x
Next y
; Konvertieren Ende.
; Testimage speichern:
StopDrawing()
SaveImage(1,"Test1.bmp")
; IDE Options = PureBasic v4.00 (Windows - x86)
; Folding = -
; DisableDebugger