Seite 2 von 3

Verfasst: 08.07.2009 09:42
von TomS
DarkDragon hat geschrieben:Zum verkleinerten/vergrößerten Zeichnen gibt es doch DrawImage(ImageID, x, y [, NeueBreite, NeueHöhe]).
Bringt nichts, denn:
spider84 hat geschrieben:Es gibt 2 Images: Ein Source mit dem geladenen Bild und ein Target, dass um 1 Pixel in der Breite schmaler ist (es ist ja ein verkleinerungs-algo). In einer zusätzlichen LinkedList steht für jede Zeile, welches Pixel im Target-Image weggelassen wird. Alle anderen Pixel sollen kopiert werden.
http://www.purebasic.fr/german/viewtopi ... 212#250212

Verfasst: 08.07.2009 11:54
von spider84
glaube ich habe eine Möglichkeit gefunden. ich kämpfe praktisch "nurnoch" mit null-pointern bzw. schwarzen bildern...

http://www.purebasic.fr/english/viewtop ... point+plot

Verfasst: 08.07.2009 12:34
von cxAlex
DarkDragon hat geschrieben:Zum verkleinerten/vergrößerten Zeichnen gibt es doch DrawImage(ImageID, x, y [, NeueBreite, NeueHöhe]).
Die Befehle skalieren das Bild einfach, er will das so machen:

http://www.youtube.com/watch?v=qadw0BRKeMk

Verfasst: 08.07.2009 12:49
von DarkDragon
cxAlex hat geschrieben:
DarkDragon hat geschrieben:Zum verkleinerten/vergrößerten Zeichnen gibt es doch DrawImage(ImageID, x, y [, NeueBreite, NeueHöhe]).
Die Befehle skalieren das Bild einfach, er will das so machen:

http://www.youtube.com/watch?v=qadw0BRKeMk
Und woraus aus dem Topic erkennst du das? Er hat das mit keinem Wort vor meinem Posting erwähnt.

Verfasst: 08.07.2009 12:54
von spider84
ok, mein fehler!
aber man kann es indirekt erschließen, da ich beim standard-resize nicht wählen kann, welche pixel entfernt werden. deshalb schreibe ich ja einen eigenen resize-algo

Verfasst: 08.07.2009 12:57
von DarkDragon
spider84 hat geschrieben:ok, mein fehler!
aber man kann es indirekt erschließen, da ich beim standard-resize nicht wählen kann, welche pixel entfernt werden. deshalb schreibe ich ja einen eigenen resize-algo
Naja, es gibt leute die fangen erstmal klein an, weißt du :freak: . Dann schreiben die sowas wie "Wie hole ich jeden Pixel aus dem Bild?".

Egal, du könntest ja alles mit Arrays lösen (Bild punkt für punkt zuerst in ein 2DArray legen bevor man mit dem Array arbeitet und danach wieder punkt für punkt in das Bild rein plotten), dann hast du schonmal keine doppelten Point()/Plot() calls bei mehrfachverwendung.

Verfasst: 08.07.2009 18:54
von spider84
Naja, es gibt leute die fangen erstmal klein an, weißt du Freak . Dann schreiben die sowas wie "Wie hole ich jeden Pixel aus dem Bild?"
Hmm, ja - grundlegende Dinge frage ich auch gerne. Mir schien trotzdem das Anfängerforum für die Frage geeignet. Ich dachte nach einem schnelleren Point/Plot fragen sicherlich viele da es wirklich langsam zu sein scheint - und das ist mir auch früher schon bei andern Projekten aufgefallen. Dort konnte ich aber damit leben...
Egal, du könntest ja alles mit Arrays lösen (Bild punkt für punkt zuerst in ein 2DArray legen bevor man mit dem Array arbeitet und danach wieder punkt für punkt in das Bild rein plotten), dann hast du schonmal keine doppelten Point()/Plot() calls bei mehrfachverwendung.
Joa, auf den Trichter kam ich mittlerweile auch - obwohl ich nicht verstehe warum sowas schneller ist. Eigentlich müsste ja PB für Images auch intern 2d-matrizen bereitstellen und Point im Fall des Lesens aus einem Image (nicht aus einem Gadget oder so) die Speicheradresse schnell berechnen können.

Verfasst: 08.07.2009 19:18
von Kaeru Gaman
das Problem ist nicht der Speicher oder sonstwas - es ist der Zugriff über den DeviceContext.
das ist nunmal schnarchelangsam, egal von welcher Sprache aus du diese Art Zugriff anwendest.

du kanst selbstverständlich den Header der Images interpretieren,
und mit diesen Informationen auf die eigentliche Bildmatrix zugreifen,
dann wirst du einen wesentlich (!) größeren Datendurchsatz erreichen.
und latürnich über API, ob das jetzt BitBlt war oder wie auch immer...

Verfasst: 08.07.2009 19:59
von spider84
axo, das heißt das Image wird genau wie ein Gadget als "Device" angesprochen - und dafür wird in einer riesigen Liste des OS nach der Adresse geguckt. kann man das so auffassen?
schade, dass PB nicht erkennt dass es sich um Images handelt und direkt darauf zugreift

Verfasst: 08.07.2009 20:07
von Fluid Byte
spider84 hat geschrieben:schade, dass PB nicht erkennt dass es sich um Images handelt und direkt darauf zugreift
:roll: