Pixel zeichnen...



  • ICh ich suche eine Möglichkeit ein rechteck von 500 x 500 Pixeln zu haben in dem ich jeden pixel eine farbe zuordnen kann und diese auch ändern kann!!!

    geht das???

    Wenn ja wie?

    THX

    Dagsta



  • Schau dir mal TImage in der BCB-Hilfe genauer an.



  • 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 nicht

    Antwort Builder1:
    unter ZUSÄTLICH VIERTE VON RECHTS 😉

    Rudi



  • ok

    ist dieses draw das beste um einen einzelnen bizel zu malen?
    THX

    Dagsta



  • 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 erzeugen

    Du 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?


Anmelden zum Antworten