Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2017, 15:29   #31
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

чёт я не воткнул.
этот АА он края самой кнопки тоже сглаживает, а не только линии?
у автора ведь именно с кнопкой проблема.
BLACK_RAIN вне форума Ответить с цитированием
Старый 28.04.2017, 10:40   #32
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

поигрался вчера с GDI+. Такая ситуация - если рисовать примитивы предварительно установив
Код:
g.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
g.SetCompositingQuality(Gdiplus::CompositingQualityHighSpeed);
g.SetInterpolationMode(Gdiplus::InterpolationModeBilinear);
то нормально работает интерполяция, края фигур гладкие, все ок. Но при попытке нарисовать на форме картинку из файла с масштабированием (размеры формы 50*50, размеры картинки 300*300)
Код:
  Graphics g(lpdis->hDC);
			g.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
			g.SetCompositingQuality(Gdiplus::CompositingQualityHighSpeed);
			g.SetInterpolationMode(Gdiplus::InterpolationModeBilinear);
			Image red(L"D:\\Igor_Program\\1\\Ukazchik_Test\\red.bmp");
			g.DrawImage(&red, Rect(0,0, BUTTON_HEIGHT, BUTTON_HEIGHT),0,0,300,300, UnitPixel);
то края все равно кривые и это не зависит от SmoothingModeAntiAlias.

Еще с пространством имен запарился, объявил сверху
using namespace Gdiplus;

но VS2015 ругается - SmoothingModeAntiAlias на является однозначным
Пришлось добавить
Код:
using Gdiplus::Graphics;
using Gdiplus::Brush;
using Gdiplus::Color;
using Gdiplus::SmoothingMode;
using Gdiplus::InterpolationMode;
using Gdiplus::Unit;
или же перед каждым классом писать Gdiplus::, что не очень удобно. Есть какие-нибудь мысли ?
__Игорь__ вне форума Ответить с цитированием
Старый 28.04.2017, 12:22   #33
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

Что то тихо как то ))
так и чего, сглаживание не работает при ресайзе изображений что ли ?
__Игорь__ вне форума Ответить с цитированием
Старый 28.04.2017, 13:19   #34
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так оно не изображения сглаживает.

Края где? При 300х300 нормальные?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.04.2017, 13:28   #35
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так оно не изображения сглаживает.

Края где? При 300х300 нормальные?
да, если без масштабирования выводить, то все нормально
__Игорь__ вне форума Ответить с цитированием
Старый 28.04.2017, 13:37   #36
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Края-то где? В самом изображении?
Может ресайзит как-то плохо, попробуйте сами в любом нормальном редакторе.

А зачем InterpolationModeBilinear?

В документации ж говорят
Цитата:
InterpolationModeBilinear

Specifies bilinear interpolation. No prefiltering is done. This mode is not suitable for shrinking an image below 50 percent of its original size.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Попробуйте InterpolationModeHighQualityBicubic например.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.04.2017, 13:52   #37
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Края-то где? В самом изображении?
Может ресайзит как-то плохо, попробуйте сами в любом нормальном редакторе.

А зачем InterpolationModeBilinear?

В документации ж говорят
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Попробуйте InterpolationModeHighQualityBicubic например.
спасибо. С InterpolationModeHighQualityBicubic нормально масштабирует.
Но края, полученные через CreateEllipticRgn остаются обгрызанными.
И остались непонятки с "не является однозначным", причем оно то появляется, то исчезает. Ерунда какая то
__Игорь__ вне форума Ответить с цитированием
Старый 29.04.2017, 08:05   #38
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от __Игорь__ Посмотреть сообщение
Но края, полученные через CreateEllipticRgn остаются обгрызанными.
а я говорил не поможет
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.04.2017, 09:14   #39
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну дык это GDI, а не GDI+.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2017, 13:37   #40
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну дык это GDI, а не GDI+.
а есть в Gdi+ аналог этой функции ?
__Игорь__ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если коннект то кнопка Button2 должна быть скрыта, и если дисконнект, то кнопка Button2 должна появляться/ компонент IdSMTP Almaz92 Помощь студентам 13 14.03.2016 00:31
Кнопка Vetaluy Microsoft Office Excel 2 17.05.2011 00:03
Кнопка Nortym Паскаль, Turbo Pascal, PascalABC.NET 1 23.04.2011 22:56
Кнопка Obey177 Общие вопросы Delphi 24 02.09.2010 04:50