crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Виджет для обрезки фотографий
DOGG
  опции профиля:
сообщение 29.8.2011, 9:41
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


Здравствуйте.

Нужен ваш совет!

Мне нужен был виджет для обрезки фотографий. Необходимый функционал:
- выделение области на исходном изображении для обрезки;
- изменение области выделения мышкой;
- возможность зафиксировать пропорции области выделения;
- затемнение исходного изображения за областью выделения.

Вот что получилось:


И теперь возник вопрос, а может быть я зря тут велик изобретаю и есть что-нибудь готовое!?
Если нет такого на Qt, то тогда второй - правильным путем ли я пошел для реализации этой задачи?

А сделал я так:
1. QLabel с исходным фото
2. Сверху QLabel такого же размера с полупрозрачной заливкой для затемнения
3. Сверху наследник QLabel, в котором переопределены события движения/нажатия/отпускания мыши для ручного изменения размера, ну и рисуется он просто - грабит часть самого нижнего QLabel над которой он находится и добавляет квадратики по бокам и линии.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2011, 9:53
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


В принципе всё можно было одним виджетом реализовать, но, цель достигнута, работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 29.8.2011, 10:27
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 29.8.2011, 9:53) *
В принципе всё можно было одним виджетом реализовать, но, цель достигнута, работает.


Да, цель достигнута, но теперь я хочу сделать не лишь бы работало, а как правильно! Наверняка кому-нибудь еще пригодится такая вещь, зачем все заново переписывать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.8.2011, 5:48
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я бы использовал наследник QWidget, а там в paintEvent всё сделал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 30.8.2011, 12:09
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Предложу еще такую вещь как QGraphicsView

И еще посмотрите тут http://qt-apps.org/content/show.php/Screen...?content=111648
В этой программе есть похожий функционал
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 30.8.2011, 12:26
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(ruzik @ 30.8.2011, 12:09) *
Предложу еще такую вещь как QGraphicsView


QGraphicsView я смотрел, решил от него отказаться по нескольким причинам:
во-первых получается слишком наворочено: сцена, на ней объекты. Слишком много... по-хорошему тут нужен-то один прямоугольник да картинка, правильно Юрий предложил сделать на одном виджете.
а во-вторых думаю, что все-таки этот виджет для задач другого класса - различных схем, диаграм и т.п. (м.б. я и ошибаюсь...)

Цитата(ruzik @ 30.8.2011, 12:09) *
И еще посмотрите тут http://qt-apps.org/content/show.php/Screen...?content=111648
В этой программе есть похожий функционал


Благодарю, посмотрим что там.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_ROXX_*
сообщение 5.4.2013, 22:31
Сообщение #7





Гости








    


Цитата(DOGG @ 29.8.2011, 9:41) *
Здравствуйте.

Нужен ваш совет!

Мне нужен был виджет для обрезки фотографий. Необходимый функционал:
- выделение области на исходном изображении для обрезки;
- изменение области выделения мышкой;
- возможность зафиксировать пропорции области выделения;
- затемнение исходного изображения за областью выделения.

Вот что получилось:


И теперь возник вопрос, а может быть я зря тут велик изобретаю и есть что-нибудь готовое!?
Если нет такого на Qt, то тогда второй - правильным путем ли я пошел для реализации этой задачи?

А сделал я так:
1. QLabel с исходным фото
2. Сверху QLabel такого же размера с полупрозрачной заливкой для затемнения
3. Сверху наследник QLabel, в котором переопределены события движения/нажатия/отпускания мыши для ручного изменения размера, ну и рисуется он просто - грабит часть самого нижнего QLabel над которой он находится и добавляет квадратики по бокам и линии.

См. здесь: https://github.com/gavrus/SampleMaker
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 8:44