Point() direkt auf Images?

Anfängerfragen zum Programmieren mit PureBasic.
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Point() direkt auf Images?

Beitrag von spider84 »

Wie kann ich einzelne Pixel eines Bildes auslesen ohne den langsamen Weg über die Ausgabe gehen zu müssen?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Für Image

Code: Alles auswählen

StartDrawing(ImageOutput(Image))
 Farbe = Point(x,y)
StopDrawing()
Für Sprite kannst du sogar mit Drawingbuffer arbeiten ... mehr dazu in der Hilfe
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nunja, das hättest du ruhig auch im anderen thread dranhängen können... :mrgreen:

such mal nach BitBlt, so nennt sich die API-Funktionalität.

ich selber weiß es auch nicht ausm Stand, sollte mir das wohl auch mal aneignen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Beitrag von spider84 »

hatte den eindruck in den andern thread guckt keiner mehr...
Zu meiner Verwunderung scheint es aber mit PB4.31 wirklich zu funzen direkt Images als Output zu nehmen statt den Weg über gadgets (wie ich es in einem früheren Programm machen musste).
Ich mach mal das proof-of-concept fertig. zum tunen kann ich mich ja nochma melden. danke!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das ging schon immer, wenn es bei dir nicht funktioniert hat, hast du irgendwas verdruselt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

spider84 hat geschrieben:Wie kann ich einzelne Pixel eines Bildes auslesen ohne den langsamen Weg über die Ausgabe gehen zu müssen?
Kaeru Gaman hat geschrieben:such mal nach BitBlt, so nennt sich die API-Funktionalität
:?:
spider84 hat geschrieben:hatte den eindruck in den andern thread guckt keiner mehr...
Wenn du noch ein bisschen bei uns weilen willst solltest du dir das in Zukunft verkneifen <)
Windows 10 Pro, 64-Bit / Outtakes | Derek
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Beitrag von spider84 »

habe mal nach bitblt geschaut, aber das kopiert/konvertiert wohl nur komplette bilder. mit standard-kopien kann ich aber nix anfangen - im grunde brauche ich wirklich zugriff auf jedes pixel
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Dann mach es wie oben beschrieben mit Point(x,y)...
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Beitrag von spider84 »

axo sorry, ja habe es gemacht wie oben beschrieben.
das dumme ist nur, dass ich mit 2 images arbeiten muss und 99% per pixel-copy kopieren muss - es werden bestimmte pixel weggelassen und das bild dabei verkleinert. ich kann aber nicht einfach ausschnitte kopieren, weil der schnitt nicht linear ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Zum verkleinerten/vergrößerten Zeichnen gibt es doch DrawImage(ImageID, x, y [, NeueBreite, NeueHöhe]).
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten