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

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
bastet_kat
Earned a small fee
Earned a small fee
Posts: 15
Joined: Sun Jun 29, 2008 8:27 pm

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

Post 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 );
}

Помогите пожалуйста
User avatar
T-Rex
Moderator
Moderator
Posts: 1249
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine

Post 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