Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > C/C++ > C/C++
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.01.2015, 15:41
Onic777 Onic777 вне форума
Прохожий
 
Регистрация: 01.01.2015
Сообщения: 5
Версия Delphi: Borland CPPB 6
Репутация: 10
По умолчанию Искажения при копировании части Image

Добрый день, Знатоки!

Помогите пожалуйста с проблемой! Пытаюсь вырезать заданный фрагмент из хорошего файла изображения и записать в файл и Image! Получаю и в Image и в файле искаженное изображение! Уже перебрал множество вариантов, а результат все тот - же !
Код:
Graphics::TBitmap* inBitmap = new Graphics::TBitmap();
    inBitmap->PixelFormat = pf24bit;
    inBitmap->Width = 640;
    inBitmap->Height = 480;
    inBitmap->LoadFromFile("PHOTO.BMP");
 
    Graphics::TBitmap* outBitmap = new Graphics::TBitmap();
    outBitmap->PixelFormat = pf24bit;
    outBitmap->Width = CURRENT.Width;
    outBitmap->Height = CURRENT.Height;
    outBitmap->Palette = inBitmap->Palette;
    outBitmap->Canvas->CopyMode = cmSrcCopy;
 
    TRect Dest_Rect     (0,0,CURRENT.Width,CURRENT.Height);
    TRect Source_Rect   (CURRENT.Left*2,
                         CURRENT.Top*2,
                        (CURRENT.Left + CURRENT.Width)*2,
                        (CURRENT.Top  + CURRENT.Height)*2);
    outBitmap->Canvas->CopyRect(Dest_Rect,inBitmap->Canvas,Source_Rect);
    outBitmap->SaveToFile("TMP.BMP");
 
    Image3->Stretch = true;
    Image3->Transparent = true;
    Image3->Width = CURRENT.Width;
    Image3->Height = CURRENT.Height;
    Image3->Picture->LoadFromFile("TMP.BMP");
    delete outBitmap;
    delete inBitmap;
Админ: Пользуемся тегами для оформления кода!

Попутно второй вопрос! Имеется заведомо хороший BMP файл изображения (полученный при захвате с веб камеры).
Как из него вывести на Image фрагмент с заданными координатами?!!

С Уважением и надеждой!!!
Onic777

Последний раз редактировалось Admin, 06.01.2015 в 17:18.
Ответить с цитированием
  #2  
Старый 06.01.2015, 18:43
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Перенесено в «> C/C++ > C/C++».
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 07.01.2015, 02:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,051
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Неправильно рассчитывается TRect Source_Rect, как мне кажется.
Ответить с цитированием
  #4  
Старый 07.01.2015, 03:01
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Кстати эту строчку нужно перенести ниже загрузки файла
Код:
inBitmap->PixelFormat = pf24bit;
иначе при загрузке, установится формат изображения из файла.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter