C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Обрезание jpeg  (Прочитано 1237 раз)
Sergey1985
Участник


Сказали спасибо: +8/-1
Offline

Сообщений: 310


Обрезание jpeg
« : 12 Октябрь 2013, 10:47:39 »

...так как время не ждет решил съеврейничать и немного погуглив нашел пример который мог бы мне помочь. Суть заключается в том чтобы на Image1 выводилась либо левая половина картинки либо правая. Но сама картинка в формате jpeg.
Делаю так
Код
void __fastcall TForm1::Image1Click(TObject *Sender)
{
TJPEGImage *jpg = new TJPEGImage();
jpg->LoadFromFile("pic.jpg");
Graphics::TBitmap *bmp = new Graphics::TBitmap();
bmp->Assign(jpg);
TRect rect;
if (Image1->Tag==1)
{
rect = TRect (0, 0, bmp->Width/2, bmp->Height);
Image1->Tag=0;
Shape1->Brush->Color = clGray;
}
else
{
rect = TRect (bmp->Width/2, 0, bmp->Width, bmp->Height);
Image1->Tag=1;
Shape1->Brush->Color = clRed;
}
TRect rect2 = TRect (0, 0, Image1->Width, Image1->Height);
Image1->Canvas->CopyRect(rect2,bmp->Canvas,rect);
delete jpg;
jpg = NULL;
delete bmp;
bmp = NULL;
}

но после этого картинка портится
как этого избежать   есть ли способ отрезать ее не переводя в Bitmap         но только желательно без использования сторонних библиотек компонентов и тд
« Последнее редактирование: 12 Октябрь 2013, 20:59:27 от volvo877 » Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


« Ответ #1 : 12 Октябрь 2013, 11:35:37 »

Чё-то ненужным образом с жипегом возишься. Сколько там картинка весит? Десятка 3 килобайт? А программа несколько метров?
Запихай битмап в ресурсы и оттуда выводи когда надо. Ни к чему на современных компьютерах байты и такты экономить.

Экономить надо на сроках разработки.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.066 секунд. Запросов: 19.