Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
Увеличение и уменьшение картинки
MorseliotДата: Суббота, 06 Марта 2010, 00:02 | Сообщение # 1
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Дело вот в чем, сижу уже пол дня help пытаясь разобраться в том, как после ZoomImage скрипта, вернуть рисунок на место из которого оно было увеличено и через MoveObject отцентрировано в середине.
Выглядит приблизительно так, допустим у меня есть Bitmap в левом верхнем углу экрана(рабочей области), при нажатии на него срабатывает скрипт MoveObject(центрирующий изображение объекта)и ZoomImageView увеличивающий сам Bitmap Object например в 15 раз, в следствии чего рисунок встает в центре увеличенный, так-же примем в участие то что эти скрипты работают в момент удерживания клавиши мыши на самом Bitmap Object. Вопрос! Как должен выглядеть скрипт или синтаксис, при отжимание клавиши мыши который, вернет изображение в исходное положение?
Прошу помогите!
 
Alex3AДата: Суббота, 06 Марта 2010, 00:42 | Сообщение # 2
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
RestoreImage("Bitmap")
 
DEMBELДата: Суббота, 06 Марта 2010, 00:50 | Сообщение # 3
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
который, вернет изображение в исходное положение?

пробовал команду RestoreImage("Bitmap")?

Добавлено (06 Март 2010, 00:45)
---------------------------------------------
только правильно перемещай изображение, рассчитай координаты чтобы увеличивалось по центру и обратно потом передвигалось

Добавлено (06 Март 2010, 00:50)
---------------------------------------------
вообще можно обойтись одной командой MoveObject, т.к. там помимо новых координат можно задавать новые размеры изображения. Двойной щелк на картинку->Enable actions, пишешь в событие MouseDown команды зума, в событие MouseUp - восстановления картинки. Рассчитай координаты и всего делов-то...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 00:51 | Сообщение # 4
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Дело в том что, restoreimage, возвращает рисунку реальные размеры картины, а в проекте она ужата. Если применить Restore, то наблюдается развертывание всего изображение на весь экран да так, что рассмотреть можно лишь отдельную чать изображения попавшее в экран...
 
DEMBELДата: Суббота, 06 Марта 2010, 00:52 | Сообщение # 5
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
наблюдается развертывание всего изображение на весь экран

тогда MoveObject с расчетом координат и размеров изображения. А зачем запихивать такую большую картинку...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 00:53 | Сообщение # 6
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
Добавлено (06 Март 2010, 00:50)
---------------------------------------------
вообще можно обойтись одной командой MoveObject, т.к. там помимо новых координат можно задавать новые размеры изображения. Двойной щелк на картинку->Enable actions, пишешь в событие MouseDown команды зума, в событие MouseUp - восстановления картинки. Рассчитай координаты и всего делов-то...

Согласен, а другого пути попроще нет? нежели постоянно сверять одно изображение за другим...

 
DEMBELДата: Суббота, 06 Марта 2010, 00:56 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
а другого пути попроще нет?

более подробно опиши принципы работы проекта, возможно проще будет сделать через браузер и яваскрипт, но тебе это может не подойти...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 00:59 | Сообщение # 8
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
А зачем запихивать такую большую картинку...

На сколько я понимаю, то разницу это не особую вносить, зато при минимальных разрешениях пиксели очень некрасиво растягиваются...

Добавлено (06 Март 2010, 00:59)
---------------------------------------------

Quote (DEMBEL)
более подробно опиши принципы работы проекта,

Представь ленту изображений одной велечины, с лева на право например, при нажатии на одном из изображений Recorder Object переносит его на Front и поверх всех по центру в увеличение выдает, при отжатии клавиши Pic возвращается в искомое положение в ряду.

Кроме MoveObject, есть еще способ например сброс или отладка изменений на странице?

Сообщение отредактировал Morseliot - Суббота, 06 Марта 2010, 01:02
 
DEMBELДата: Суббота, 06 Марта 2010, 01:13 | Сообщение # 9
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
переносит его на Front и поверх всех по центру в увеличение выдает, при отжатии клавиши Pic возвращается в искомое положение в ряду.

это можно сделать в обьекте "браузер", достаточно сделать html-страничку со скриптом, который будет обрабатывать увеличение, но это само собой будет работать только в рамках обьекта браузер. если есть возможность его встроить в проект незаметно, то имеет смысл рассмотреть этот вариант, хотя он посложнее.
Либо все делать через moveobject




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 01:19 | Сообщение # 10
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Понял, Спасибо за совет!

Добавлено (06 Март 2010, 01:19)
---------------------------------------------
и еще вот что, пока тема открыта..
MoveObject при X=0 и Y=0 является левым верхним углом экрана, то почему при значение в 200 на 200 изображение находится черти где, что он принимает за Axis point у Объекта?

 
DEMBELДата: Суббота, 06 Марта 2010, 01:29 | Сообщение # 11
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Есть другой способ, более понятный, но возюкаться долго - заготовьте уменьшенные копии картинок, которые будут показываться в ряд, а по центру вставьте увеличенный вариант картинки. По щелчкам на маленькие картинки большая будет заменяться через ReplaceImage на соответствующую увеличенную копию, это можно сопроводить каким-нибудь эффектом. Либо смастерить в браузере чтото вроде этого.

Добавлено (06 Март 2010, 01:29)
---------------------------------------------

Quote (Morseliot)
что он принимает за Axis point у Объекта?

точка отсчета координат у обьекта не центр, а его левый верхний угол, относительно левого верхнего угла окна приложения.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 01:31 | Сообщение # 12
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Проверил, вариант рабочий но не настолько динамичен насколько изначально планировал, но советы навели на мысль, а за это огромное спасибо!
 
DEMBELДата: Суббота, 06 Марта 2010, 01:34 | Сообщение # 13
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
но не настолько динамичен

найдите там более динамичный, скрипты настраиваются, если вас привлек браузер... вставить свои картинки несложно, если что изменить или исправить, обращайтесь




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 01:35 | Сообщение # 14
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
точка отсчета координат у обьекта не центр, а его левый верхний угол, относительно левого верхнего угла окна приложения.

Во за это спасибо, а то с этимвозникла проблема.
 
DEMBELДата: Суббота, 06 Марта 2010, 01:36 | Сообщение # 15
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
вот чтоб было яснее о чем речь
Прикрепления: 1664975.png (0.6 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 01:44 | Сообщение # 16
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
именно!

Weight и Height oбъекта устанавливается с учетом той же шкалы x и y? потому-что не выходит, не получается растянуть и потом снова стянуть изображение.

 
DEMBELДата: Суббота, 06 Марта 2010, 01:52 | Сообщение # 17
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
Weight и Height oбъекта устанавливается

нет, с чего бы это? ширина и высота обьекта считаются как обычно, от левого верхнего угла самого обьекта, не от окна, оно тут ни при чем.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 01:57 | Сообщение # 18
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Я имел ввиду единицу измерения, что по шкале X и Y её проше высчитать, так как зона в которой расположен объект подсвечена розовым цветом . я и решил что таким образом и отчитывается величина...
 
DEMBELДата: Суббота, 06 Марта 2010, 01:57 | Сообщение # 19
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
так понятнее? запоминаем начальные размеры изображения, увеличиваем их скажем вдвое и перемещаем на 50,50 а потом возвращаем обратно и перемещаем в 0,0
Прикрепления: test2.zip (7.4 Kb)




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 02:05 | Сообщение # 20
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
В яблочко!
Надо только теперь посмотреть какая степень потери качестка при увеличение, но ход мысли тот самый.
Благодарю!
 
DEMBELДата: Суббота, 06 Марта 2010, 02:11 | Сообщение # 21
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Morseliot)
какая степень потери качестка при увеличение,

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

Добавлено (06 Март 2010, 02:11)
---------------------------------------------
и когда меняете размеры картинки, лучше делать это строго пропорционально ее размерам, так меньше будет всяких артефактов




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 02:13 | Сообщение # 22
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
уже пробую...
 
Alex3AДата: Суббота, 06 Марта 2010, 02:18 | Сообщение # 23
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
При манипуляциях с картинкой артефакты нарастают, именно для их обнуления и служит
RestoreImage("Bitmap"). НО, увеличение\уменьшение картинки это плохо!
Лучше показывать две разных по размеру картинки, по крайней мере за их качество вам
будет не стыдно :D
 
MorseliotДата: Суббота, 06 Марта 2010, 02:23 | Сообщение # 24
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Все советы намотаны на ус, всем спасибо, DEMBEL правдо очень помогли. Продолжаю работу. Всем Удачи и вдохновения!
 
DEMBELДата: Суббота, 06 Марта 2010, 02:28 | Сообщение # 25
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Alex3A)
Лучше показывать две разных по размеру картинки, по крайней мере за их качество вам будет не стыдно

это да... если делаете какой-то серьезный проект, лучше воспользоваться этим советом, если возможно. хотя я особой разницы не вижу, мелкие артефакты везде будут при изменении размера...

Добавлено (06 Март 2010, 02:28)
---------------------------------------------
правда отдельную картинку можно обработать, чтобы их не было видно...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
MorseliotДата: Суббота, 06 Марта 2010, 02:33 | Сообщение # 26
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Я потратил некоторое время что бы избавится от артефактов в изображениях PNG разрешения, после того как устанавливал к примеру на белый фон эффект прозрачности, при первых запусках проекта видимости дефект не выдавал, а при вторичных запусках в местах что должны были быть прозрачными каким-то чудесным образом выдавали полный набор артефактов, сначала ссылался на видео что играло перед запуском проекта, но оказалось "НЕТ", сколько не ломал голову пришел только к одному варианту, МАСКА, на то же самое изображение артефакты остаются но они уже не такие заметные.
 
Alex3AДата: Суббота, 06 Марта 2010, 02:39 | Сообщение # 27
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
С PNG имеющим альфаканал ммв не дружит, к тому же этот формат не масштабируемый.
Юзать PNG можно только через плагин.
 
MorseliotДата: Суббота, 06 Марта 2010, 02:46 | Сообщение # 28
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
Юзать PNG можно только через плагин

Тут есть такой?

Как раз это и была Alpha, просто с MMB, не так давно и не так часто, поэтому такие ньюансы не рассматривал.

 
Alex3AДата: Суббота, 06 Марта 2010, 02:54 | Сообщение # 29
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (Morseliot)
Тут есть такой?

Конечно есть. У меня на сайте и тут то же -Плагин PNG.
 
MorseliotДата: Суббота, 06 Марта 2010, 03:01 | Сообщение # 30
Поднаторевший
Группа: Проверенные
Сообщений: 77
Репутация: 0
Награды: 0
Статус: Offline
Нашел, спасибо, нужный инструмент.
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: