Pixel zeichnen...
-
Ich würde sagen seines Bildes...
Warum benutzt du keine for schleife?
-
Original erstellt von dagsta:
jetzt ist meine überlegung ein feld mit allen farben zu erzeugenDu weißt aber wohl, dass es 2^32 = 4294967296 Farben gibt. Wenn du alle Farben in einem Quadrat anordnest, ist die Seitenlänge des Quadrates 2^16 = 65536 in Pixel. Das ist auf keiner Auflösung machbar!
-
Wo ist denn mein Post hin, mein Freund? :o
-
Hä?
-
Ich hab hier was gepostet, das jetzt nicht mehr da ist.
-
Dann solltest du es nochmal posten. Und wer ist "mein Freund"?
-
Die (imaginäre !?) Person, die meinen Post gelöscht hat.
-
Hier sind die ganzen Farb-Codes:
Ich denke mal das du jetzt´deine Frage von was für einem Typ
Pixels
ist dir schenken kannst!
<snip>
Edit:
Was soll das? Statt seitenweise zu zitieren hätte ein Hinweis auf die entsprechende Header-Datei ausgereicht, und den Typ von Pixels kann dagsta nach dem Hinweis von Eßer leicht in der Hilfe nachschlagen.[ Dieser Beitrag wurde am 12.01.2003 um 19:35 Uhr von Jansen editiert. ]
-
Achja :
du hättest ja auch mal auf die Idee kommen können, die Datei graphics.hpp zuöffnen denn da stehen die ganzen Definitionen, die ich dir ebenmal per Copy/Paste gepostet habe, drin!
-
Hier noch ein Beispiel: ( 1 X TImage(Komponente)(Height = 500/Width = 500), 3 X Buttons)
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void ChangeColor(AnsiString Farbe, TImage *Image); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void ChangeColor(TColor Farbe,TImage *Image) { int i = 0,j = 0; while (i < Image->Height) { while (j < Image->Width) { Image->Canvas->Pixels[i][j] = Farbe; j++; } j = 0; i++; } } void __fastcall TForm1::Button1Click(TObject *Sender) { ChangeColor(clRed, Image1); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { ChangeColor(clBlue, Image1); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { ChangeColor(clGreen, Image1); } //---------------------------------------------------------------------------
PS: Sorry Jansen kommt nicht wieder vor!(Zumindest bei mir)
-
Super, wie du dagsta damit motiviert hast, sich eine eigene Lösung zu erarbeiten, bei der er auch noch etwas gelernt hätte ...
-
Dagsta:
ich weiss nicht genau, was Du vorhast (aber irgendwie habe ich das unbestimmte Gefühl, dass was immer es auch ist auch einfacher geht).
Wie dem auch sei: vermutlich wirst Du feststellen, dass die Methode mit Pixels[][] einzeln an zigtausend Pixeln herumzupulen für Deine Zwecke zu langsam ist. Probiere es vielleicht aber trotzdem erstmal aus, um ein Gefühl für TColor etc. zu kriegen.
Wenn Du so weit bist, schau Dir dann mal TBitmap::ScanLine oder so ähnlich an.Ach, bevor ich es vergesse: natürlich Graphics::TBitmap, sorry.
Kann mir jemand sagen, ob es für diese hässliche Graphics::-Warze eine passende Tinktur gibt?
-
Zitat von Jansen:
Super, wie du dagsta damit motiviert hast, sich eine eigene Lösung zu erarbeiten, bei der er auch noch etwas gelernt hätte ...
Ist in Ordnung so, denn das was ihm gepostet habe ist eigentlich nur ein Denkanstoss denn die Performance dieses "Algorithmus" ist eher kläglich!
Ich sitze an einem 1.6 GHZ PC mit 256 MB RAM und für ein einziges mal Farbe ändern braucht der PC 1-2 Sek. das ist doch zuviel des guten oder ??C U Evilissimo
-
@Evil: Schonmal was von for-Schleifen gehört?