![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Jade |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 18.10.2006 Где: Киев Репутация: нет Всего: нет |
Всем доброго времени суток.
Стоит задачка написать программу, в которой пользователь, загружая в нее большую картинку (например разрешением 4000х3000 - результат съемки 12-мегапиксельного фотоаппарата) имеет возможность вырезать из нее картинку поменьше. Чтобы вырезать, пользователь двигает рамочкой, изменяя ее размеры и положение на большой картинке, а потом нажимает кнопочку "вырезать". Все вроде просто. --- Но, при движении рамочкой большую картинку (по которой юзер эту рамочку двигает) нужно ж перерисовывать. Чтобы не морочиться с запоминанием координат линий рамки (сами-то рамки тоже в будущем планируются быть разных форм и очертаний), решил сделать так: картинку поместил на панель, рамку поместил в пикчербокс. пикчербоксу задал BackgroundColor = Transparent. Но, при таком решении передвижение рамки изрядно глючит. К тому же, функционально нужны полосы прокрутки для большой картинки, и полоска изменения масштаба (зуминг). --- Решил искать какой-то компонент, позволяющий в себя грузить картинки, и скроллить и зумить. Нашел актив-иксные, но что-то мне не нравятся они. К тому же, даже если найду сразу для C# - мой пикчербокс прозрачным на нем не будет (прозрачность для стандартногот пикчербокса поддерживается только на фоне формы или панели). Подскажите пожалуйста, как правильно эту проблему решить. Как рисуются рамочки в Paint.NET ? Или, подскажите пожалуйста, какой компонент использовать (поддерживающий скроллинг, зумминг и желательно двухслойность - в 1 слое рисовать главную картинку, во втором - рамку). Заранее спасибо. |
|||
|
||||
Enteropoly |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 17.6.2009 Репутация: нет Всего: нет |
Я бы использовал компонент Form. У тебя на руках есть все средства для этого =) Скролл? - пожалуйста, можно повесить например на правую кнопку мыши. Зум? - почему нет, растягивать картинку никто не запрещал. 2 слоя? - просто сначала рисуй одно, а потом поверх другое. Это всё не так трудно =) Я знаю, сам делаю игрушку на шарпе, у меня используются от силы классов 10 (Form, Graphics и всякие Point, Size и прочие). Стандартных средств в большинстве случаев за глаза хватает, нужно лишь догадаться, как применить ![]() А вообще, слушать мои советы не всегда надо, я просто люблю изобретать велосипеды ![]() Это сообщение отредактировал(а) Enteropoly - 8.7.2009, 23:22 |
|||
|
||||
BestRoot |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 30.10.2008 Репутация: нет Всего: нет |
Ну начнем с того что картинка это 2-х мерный массив ,и все будет очень просто
![]()
если леняк писать ручками то можно сделать Array.Copy(); |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |