Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Обрезать картинку..


Автор: Santilka85 23.8.2007, 06:05
Здрасьте всемsmile..

тема такова....
на форму загружается картинка в Image.. как бы эту картинку при нажатии на кнопку сжимать... необходимого размера и сохранить в отдельный файл?
допутим было 640*480 а надо 64*48.... smile

Добавлено через 6 минут и 43 секунды
может не Image использовать?! smile ?!

Автор: Lazin 23.8.2007, 08:13
Можно это сделать ф-й ...->Canvas->StretchDraw(...);
Создаёшь временный битмап копируешь на него и в файл
Код

std::auto_ptr<Graphics::TBitmap> bmp(new Graphics::TBitmap);
bmp->Height = Image->Picture->Bitmap->Height/4;
bmp->Width  = Image->Picture->Bitmap->Width/4;
bmp->Camvas->StretchDraw(bmp->ClipRect, Image->Picture->Bitmap);
bmp->SaveToFile("file.bmp");

При сильном масштабировании изображение будет оч. хренового качества

Автор: SenkraD 23.8.2007, 08:13
Santilka85,  вот тебе пример:
Код

    Graphics::TBitmap *pBmp;

    pBmp        = new Graphics::TBitmap();
    pBmp->Width    = 64;
    pBmp->Height    = 48;

    StretchBlt(pBmp->Canvas->Handle, 0, 0, pBmp->Width, pBmp->Height,  Image1->Canvas->Handle, 0, 0, Image1->Width, Image1->Height,  SRCCOPY);

    Image1->Canvas->FillRect(Image1->ClientRect);
    BitBlt(Image1->Canvas->Handle, 0, 0, pBmp->Width, pBmp->Height, pBmp->Canvas->Handle, 0, 0, SRCCOPY);


    pBmp->SaveToFile("C:\\Scale.bmp");

    delete pBmp;

Автор: Santilka85 23.8.2007, 08:22
Пасип, ребята..попробую, отпишусь.. smile  smile 


пока некада..на работе:(

Автор: Santilka85 30.8.2007, 06:32
Спасибо всем...работаит....пришлось маленько переделать smile  smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)