Pixel zeichnen...
-
sorry aber daraus werde ich nicht schlau!
Aber ist es möglich ein bild das ich in einem TImage habe zu bearbeiten also pixel zu übermalen?
THX
Dagsta
-
Vor Allem schaffst du es in gut 10min ohne Probleme ausgiebig mit TImage herumgespielt und dir das genau angeschaut?
TImage::Canvas und dessen Eigenschaften sind in diesem Zusammenhang recht spannend.-junix
[ Dieser Beitrag wurde am 12.01.2003 um 12:48 Uhr von junix editiert. ]
-
unter welchem bereich finde ich dieses TImage`???
wollte das gerade hinzufügen aber finde das nicht
-
unter welchem bereich finde ich dieses TImage`???
wollte das gerade hinzufügen aber finde das nichtAntwort Builder1:
unter ZUSÄTLICH VIERTE VON RECHTSRudi
-
ok
ist dieses draw das beste um einen einzelnen bizel zu malen?
THXDagsta
-
Ok das mit den pixeln malen habe ich jetzt hinbekommen!!!
pCanvas->Pixels[10][10] = clRed;
jetzt ist meine überlegung ein feld mit allen farben zu erzeugen um dann immer eine auzuwählen
also pCanvas->Pixels[10][10] = FarbenFeld[1];
von welchem Typ muss das feld den dann sein?
THX
Dagsta
-
Von welchem Typ ist den TCanvas::Pixels?
-
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