От: | MTimur | ||
Дата: | 16.01.17 16:25 | ||
Оценка: |
Скрытый текст | |
C>Здравствуйте, MTimur, Вы писали: MT>>Здравствуйте, Carc, Вы писали: C>>>Дык вроде там CopyImage юзался для копирования исходного битмапа, который потом отрисовывается GDI+ со всякими вывертами (я пытался через ScaleTransfofm, в твоем коде уже просто DrawImage с заданной шириной\высотой). MT>>Допустим исходный битмап имеет размер 100*100. MT>>1. Из увеличенного битмапа размером 200*200 точек копируем область размером 100*100. Что получится? MT>>2. Из уменьшенного битмапа размером 50*50 точек копируем область размером 100*100. Результат? C>Ну ты не уловил… У меня там как было примерно… C>1) Копирую исходный битмап ДО рисования. (сейчас я это убрал — ибо лишнее) C>2) Создаю битмап в памяти, чтобы отрисоваться на нем. И выбираю его в Graphics в конструкторе. C>3) Рисую исходный со новой шириной\высотой (как ты подсказал), или (как не работало) со ScaleTransform… C>Т.е. улови, я не копирую результирующий битмап. Я копировал только исходный, и то это оказалось лишним, и сейчас я это убрал. | |
От: | Carc | https://vk.com/gosha_mazov | |
Дата: | 16.01.17 16:56 | ||
Оценка: |
От: | MTimur | ||
Дата: | 16.01.17 17:05 | ||
Оценка: |
If necessary, the function stretches the bits to fit the desired size of the new image.
От: | uuuser | ||
Дата: | 17.01.17 00:45 | ||
Оценка: |
Gdiplus::Graphics gfx( pDst );
gfx.SetInterpolationMode( Gdiplus::InterpolationModeBilinear );
Gdiplus::RectF rc( 0.0f, 0.0f, dw, dh ); //destination rectangle
gfx.DrawImage( pSrc, rc, sx, sy, sw, sh, Gdiplus::UnitPixel, NULL, NULL, NULL ); //sx, sy, sw, sh - source pos/size