Page 1 of 1

Вырезать часть изображения

Posted: Thu Oct 09, 2008 5:43 pm
by bastet_kat
Доброе время суток. подскажите пожалуйста как можно вырезать часть изображения, и вставить его в другую часть. Вот код...но у меня не работает с помощью GetClippingBoxлибо я что то не то делаю:
wxPaintDC TempPaintDC(this);
TempPaintDC.DrawBitmap(wxBitmap( wxT("myoutfile.bmp"), wxBITMAP_TYPE_BMP),0,0,true);
TempPaintDC.GetClippingBox( &as, &bs, &vc, &vc1 );
for (int i=1;i<=w-vc-10;i+=2)
{

if (fon==1)
{
wxPen pen(wxColour(r,g,b));
TempPaintDC.SetPen(pen);
wxBrush brush1(wxColour(r,g,b),wxSOLID);
TempPaintDC.SetBrush(brush1);
if (fig=="Êðóã")
TempPaintDC.DrawCircle(i-2+rad, rad+5, rad);
else TempPaintDC.DrawRectangle(i-2+hh,hh+5,wh,hh);
}
else //
{//TempPaintDC.DrawBitmap(wxBitmap( wxT("myoutfile.bmp"), wxBITMAP_TYPE_BMP),0,0,true);
// TempPaintDC.SetClippingRegion( (i-2+hh), (hh+5), wh, hh );
as=i+hh;
bs=hh+5;
TempPaintDC.GetClippingBox( &as, &bs, &wh, &hh );
}

Помогите пожалуйста

Posted: Fri Oct 10, 2008 9:57 am
by T-Rex

Code: Select all

	do
	{
		wxBitmap bmp(wxT("test.png"), wxBITMAP_TYPE_PNG);
		if(!bmp.IsOk()) break;
		wxMemoryDC mdc(bmp);
		wxBitmap clip(150, 100);
		wxMemoryDC clipdc(clip);
		clipdc.Blit(0, 0, clip.GetWidth(), clip.GetHeight(), &mdc, 100, 100);
		mdc.Blit(100, 200, clip.GetWidth(), clip.GetHeight(), &clipdc, 0, 0);
		mdc.SelectObject(wxNullBitmap);
		bmp.SaveFile(wxT("result.png"), wxBITMAP_TYPE_PNG);
	}
	while(false);
Как сделать прямоугольник выделения мышкой можно почитать здесь
http://wxwidgets.info/getting_aquainted ... _part_3_en