TImage + bmp + Bild zuschneiden per CopyRect [Gelöst]



  • Hallo, habe auf meiner Form ein TImage in welches in ein Bild (36*36) laden will, so noch kein Problem. Allerdings habe ich ein Bild welches 360*36 Pixel misst (an sich sind dies 10 * ein Bild 36*36 nebeneinander) und ich möchte nun (erstmal) nur die ersten 36*36 Pixel in TImage haben, später halb das Bild daneben usw.

    Wollte hierfür CopyRecht bemühen aber leider bekomme ich keine Anzeige.

    Hier mein bisheriger Code:

    Graphics::TPicture* sBMP = new Graphics::TPicture();  // Quellbild (360*36)
    TRect sRECT = Rect(0,0,36,36); // Quellausschnitt
    
    Graphics::TPicture* dBMP = new Graphics::TPicture();  // Zielbild (36*36)
    TRect dRECT = Rect(0,0,36,36); // Zielausschnitt (brauch ich das?)
    
    sBMP->LoadFromFile("load.bmp"); // Das Bild laden
    
    dBMP->Bitmap->Canvas->CopyRect(dRECT, sBMP->Bitmap->Canvas, sRECT);
    img_send->Picture = dBMP;
    


  • Hallo,

    dein dBMP hat noch keine Grösse, ergänze mal so in etwa:

    dBMP->Width = 36;
     dBMP->Height = 36;
    

    mfg
    kpeter



  • Super, funktioniert. Vielen Dank kpeter!

    Byte picNo = 7;
    	Graphics::TPicture* sBMP = new Graphics::TPicture();  // Quellbild (360*36)
    	TRect sRECT = Rect((picNo*36),0,(picNo*36+36),36); // Quellausschnitt
    	Graphics::TPicture* dBMP = new Graphics::TPicture();  // Zielbild (36*36)
    	TRect dRECT = Rect(0,0,36,36); // Zielausschnitt
    	dBMP->Bitmap->Width = 36;
    	dBMP->Bitmap->Height = 36;
    	sBMP->LoadFromFile("load.bmp"); // Das Bild laden
    	dBMP->Bitmap->Canvas->CopyRect(dRECT, sBMP->Bitmap->Canvas, sRECT);
    	img_send->Picture = dBMP;
    

Anmelden zum Antworten