Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


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

чёт я не воткнул.
этот АА он края самой кнопки тоже сглаживает, а не только линии?
у автора ведь именно с кнопкой проблема.
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
Заблокирован
 
Регистрация: 12.01.2011
Сообщений: 19,504
По умолчанию

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

Края где? При 300х300 нормальные?
Alex11223 вне форума Ответить с цитированием
Старый 28.04.2017, 13:28   #35
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

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

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

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

А зачем 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 например.
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
Сообщений: 739
По умолчанию

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

Ну дык это GDI, а не GDI+.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2017, 13:37   #40
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840