PBPaint 1.0 Beta
Oh, dann habe ich es falsch verstanden.
Ich dachte sein Problem sei, dass er nicht wüsste, wie die Zeichenfläche in ein extra Fenster kommt.
Die Toolbar aus ausziehbares Fensterchen zu bekommen geht vielleicht mit API oder einer der diversen Toolbar-Libs. Eine gewisse "ToolbarPro"-Lib gibt's oder gab's mal, wenn ich mich recht erinnere.
Ansonsten mal den Andreas (heißt unser Forenmitglied so?) fragen, ob er weiterweiß, denn sein Untertitel (links unter dem Nickname) heißt "Toolbar-König". Vielleicht weiß er rat.
Ich dachte sein Problem sei, dass er nicht wüsste, wie die Zeichenfläche in ein extra Fenster kommt.
Die Toolbar aus ausziehbares Fensterchen zu bekommen geht vielleicht mit API oder einer der diversen Toolbar-Libs. Eine gewisse "ToolbarPro"-Lib gibt's oder gab's mal, wenn ich mich recht erinnere.
Ansonsten mal den Andreas (heißt unser Forenmitglied so?) fragen, ob er weiterweiß, denn sein Untertitel (links unter dem Nickname) heißt "Toolbar-König". Vielleicht weiß er rat.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
@hDC
könntest es z.B. so benutzen:
könntest es z.B. so benutzen:
Code: Alles auswählen
hDC = StartDrawing(ImageOutput(#Image))
LineEx(hDC, ...)
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Also ich arbeite gerade an neue Features, wie z.B. das Zeichnen von dicken Linien (hiermit einen herzlichen Dank an c4s - deine Prozedur funktioniert einwandfrei).
Genannte Bugs wurden inzwischen auch behoben.
Mit dem Release warte ich aber noch - ich moechte noch eine Farbpalette einbauen, da mir die Loesung mit dem ColorRequester als etwas zu umstaendlich erscheint
daher werd ich auch ne kleine Farbpalette (wie in Paint) einbauen.
Veilleicht schaff ich es ja doch noch, dass mein Programm ein besseres MS Paint wird...
Genannte Bugs wurden inzwischen auch behoben.
Mit dem Release warte ich aber noch - ich moechte noch eine Farbpalette einbauen, da mir die Loesung mit dem ColorRequester als etwas zu umstaendlich erscheint

Veilleicht schaff ich es ja doch noch, dass mein Programm ein besseres MS Paint wird...
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Nein, das ist bei mir auch so.X360 Andy hat geschrieben:Super gemacht![]()
Hab nur einen kleinen (eigentlich unbedeutenden) Bug gefunden
- Wenn man das ZeichenFenster sehr weit rauszieht , und dann wieder zurück zieht, werden die Blauen Punkte mehrmals angezeigt ...
Wenn das nur bei mir so ist , kann ich auch einen screen machen
Der Bug war mir bekannt - hab allerdings noch keine Loesung dafuer gefunden.
Sobald das Bild zu gross ist und in das Fenster nicht mehr reinpasst wird ein ScrollBalken erstellt und danach refresht PB irgendwie nicht mehr den Fensterinhalt bis die Maustaste nicht losgelassen wurde. Komischer Bug - denn solange kein Scrollbalken erstellt werden muss, funktioniert alles wunderbar.
Ich werde jedenfalls noch daran arbeiten und den Bug beheben.
Danke fuers Feedback

Super Arbeit, dafür, dass du erst seit kurzem dabei bist.
optional:
* Pinsel-Punkte werden durch Linien verbunden, damit schnelle Mausbewegungen
nicht nur viele Punkte, sondern schöne Striche erzeugen
* ausgefüllte Kreise, ausgefüllte Rechtecke
* Pinsel-Form: Kreis, schräge Linien, Muster ...
> Lupenfunktion scheint noch etwas glitschig zu sein. Die mal überarbeiten
> Raster beim Zoomen zur besseren Koordinierung anzeigen.
>>> falsche Darstellung von Satzzeichen bei hoher ZeichenDPI-Zahl.
Eventuell das hier einbauen:
http://www.purebasic.fr/german/viewtopi ... i&start=10
Für dein erstes Programm absolut top:
Weitere Inspiration:
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
Weiter so!!!
optional:
* Pinsel-Punkte werden durch Linien verbunden, damit schnelle Mausbewegungen
nicht nur viele Punkte, sondern schöne Striche erzeugen
* ausgefüllte Kreise, ausgefüllte Rechtecke
* Pinsel-Form: Kreis, schräge Linien, Muster ...
> Lupenfunktion scheint noch etwas glitschig zu sein. Die mal überarbeiten
> Raster beim Zoomen zur besseren Koordinierung anzeigen.
>>> falsche Darstellung von Satzzeichen bei hoher ZeichenDPI-Zahl.
Eventuell das hier einbauen:
http://www.purebasic.fr/german/viewtopi ... i&start=10
Für dein erstes Programm absolut top:



Weitere Inspiration:
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
Weiter so!!!
Kinder an die Macht http://scratch.mit.edu/
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Danke - wobei es leider nich so gut geworden ist, wie ich es mir erhofft hatteXaby hat geschrieben:Super Arbeit, dafür, dass du erst seit kurzem dabei bist.

Das ist eines der vielen Probleme die ich nicht gebacken bekomme. Das Problem dabei ist, dass genau dort der Punkt gemacht wird wo sich die Maus befindet.Xaby hat geschrieben:* Pinsel-Punkte werden durch Linien verbunden, damit schnelle Mausbewegungen
nicht nur viele Punkte, sondern schöne Striche erzeugen
Bereits implementiert - laesst sich sogar in 3 verschiedenen Arten einstellen auf Menu -> Tools -> Extended Tool OptionsXaby hat geschrieben:* ausgefüllte Kreise, ausgefüllte Rechtecke
hm? Die Form laesst sich ja frei waehlen - muss sich nur im Clipboard als Image befinden...Xaby hat geschrieben:* Pinsel-Form: Kreis, schräge Linien, Muster ...
Inwiefern denn? Problem ist halt nur, dass das Programm langsamer wird, aber von der Funktion selbst her seh ich bisher noch nix schlechtes.Xaby hat geschrieben:> Lupenfunktion scheint noch etwas glitschig zu sein. Die mal überarbeiten
> Raster beim Zoomen zur besseren Koordinierung anzeigen.
Danke, seh ich mir noch naeher an ... ist zu frueh am morgenXaby hat geschrieben:>>> falsche Darstellung von Satzzeichen bei hoher ZeichenDPI-Zahl.
Eventuell das hier einbauen:
http://www.purebasic.fr/german/viewtopi ... i&start=10

Xaby hat geschrieben:Für dein erstes Programm absolut top:![]()
![]()
![]()
Weitere Inspiration:
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
Weiter so!!!

Ist doch ganz einfach.Dare Devil hat geschrieben:Das ist eines der vielen Probleme die ich nicht gebacken bekomme. Das Problem dabei ist, dass genau dort der Punkt gemacht wird wo sich die Maus befindet.Xaby hat geschrieben:* Pinsel-Punkte werden durch Linien verbunden, damit schnelle Mausbewegungen
nicht nur viele Punkte, sondern schöne Striche erzeugen
Anstatt die Punkte zu malen merkst du dir einfach die letzten Koordinaten
und malst dementsprechend von eben diesen zu den Aktuellen eine Linie.
Irgendwie so:
Code: Alles auswählen
Repeat
MouseX = DesktopMouseX()
MouseY = DesktopMouseY()
LineXY(MouseXLast, MouseYLast, MouseX, MouseY, $123456)
MouseXLast = MouseX
MouseYLast = MouseY
ForEver
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Dein Programm sollte wirklich nur auf die Zwischenablage zugreifen,Clipboard
oder diese benutzen, wenn der Nutzer es ausdrücklich verlangt.
Eine Möglichkeit wäre zum Beispiel, eine Art kleines Malfeld von
eventuell 32 x 32 Pixeln, wo man mit einem kleinen Stift drauf zeichnen
kann und das auch nur in schwarz oder weiß oder in Graustufen und
das wird dann quasi der neue Pinsel.
Wenn du dein System umstellst und einen Screen benutzt,
kannst du sogar Sprites nehmen und diese als Malpinsel benutzen.
Und du könntest sogar ne Transparenzstärke einstellen.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
Kannste jetzt nur umständlich indem du erst die vorhandenen Pixel
analysierst und dann entsprechend mit den Pixeln, die noch drauf sollen
prozentual als Farbwert verrechnest und dann wieder setzt, das ist
langsam.
Beispiel.
Pinpette liefert Rot: 100, grün: 200, blau: 50
Du willst jetzt darauf einen halbtransparenten grünen Klecks machen:
Farbe: R: 0, G: 255, B: 0
>>>>>>>>>>>>>>>>>>>>>>
Der Klecks, soll halbtransparent und du möchtest 2 Bilder mit einander
verrechnen. Jedes Bild muss also die Farbinformationen ins neue
resultierende Bild zur Hälfte einbringen:
Rot : 100 / 2 + 0 / 2, grün: 200 / 2 + 255 / 2, blau: 50 / 2 + 0 / 2
Wenn dein neuer Klecks 75 % Deckkraft hat, ist der Anteil 3 Mal höher
als der Anteil von dem Bild, welches darunter liegt.
also 1/4 + 3/4 = 1 Ganzes.
Du kannst es auch für jede Prozentzahl machen:
ErsterFarbwert / 100 * (100-Deckung) + ZweiterFarbwert / 100 * Deckung
Bei unserem Beispiel mit 75% Deckkraft des zweiten Farbwerts wäre es also
R: 100 / 100 * 25 + 0 / 100 * 75 = 25
G: 200 / 100 * 25 + 255 / 100 * 75 ~ 241
B: 50 / 100 * 25 + 0 / 100 * 75 ~ 13
Das müsste natürlich in einer verschachtelten Schleife für jeden
Pixel gemacht werden. Also erst ein Point (), dann ein Plot()


Kinder an die Macht http://scratch.mit.edu/