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

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

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

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

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

чёт я не воткнул.
этот АА он края самой кнопки тоже сглаживает, а не только линии?
у автора ведь именно с кнопкой проблема.
BLACK_RAIN вне форума   Ответить с цитированием
Старый 28.04.2017, 11: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, 13:22   #33
__Игорь__
Пользователь
 
Регистрация: 25.04.2017
Сообщений: 26
По умолчанию

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

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

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

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

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

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

А зачем 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, 14: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, 09:05   #38
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 618
По умолчанию

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

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

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если коннект то кнопка Button2 должна быть скрыта, и если дисконнект, то кнопка Button2 должна появляться/ компонент IdSMTP Almaz92 Помощь студентам 13 14.03.2016 01: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


08:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.