| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Вырезание картинки из другой картинки |
| Автор: Jade 7.7.2009, 16:14 |
| Всем доброго времени суток. Стоит задачка написать программу, в которой пользователь, загружая в нее большую картинку (например разрешением 4000х3000 - результат съемки 12-мегапиксельного фотоаппарата) имеет возможность вырезать из нее картинку поменьше. Чтобы вырезать, пользователь двигает рамочкой, изменяя ее размеры и положение на большой картинке, а потом нажимает кнопочку "вырезать". Все вроде просто. --- Но, при движении рамочкой большую картинку (по которой юзер эту рамочку двигает) нужно ж перерисовывать. Чтобы не морочиться с запоминанием координат линий рамки (сами-то рамки тоже в будущем планируются быть разных форм и очертаний), решил сделать так: картинку поместил на панель, рамку поместил в пикчербокс. пикчербоксу задал BackgroundColor = Transparent. Но, при таком решении передвижение рамки изрядно глючит. К тому же, функционально нужны полосы прокрутки для большой картинки, и полоска изменения масштаба (зуминг). --- Решил искать какой-то компонент, позволяющий в себя грузить картинки, и скроллить и зумить. Нашел актив-иксные, но что-то мне не нравятся они. К тому же, даже если найду сразу для C# - мой пикчербокс прозрачным на нем не будет (прозрачность для стандартногот пикчербокса поддерживается только на фоне формы или панели). Подскажите пожалуйста, как правильно эту проблему решить. Как рисуются рамочки в Paint.NET ? Или, подскажите пожалуйста, какой компонент использовать (поддерживающий скроллинг, зумминг и желательно двухслойность - в 1 слое рисовать главную картинку, во втором - рамку). Заранее спасибо. |
| Автор: Enteropoly 8.7.2009, 23:18 | ||
Я бы использовал компонент Form. У тебя на руках есть все средства для этого =) Скролл? - пожалуйста, можно повесить например на правую кнопку мыши. Зум? - почему нет, растягивать картинку никто не запрещал. 2 слоя? - просто сначала рисуй одно, а потом поверх другое. Это всё не так трудно =) Я знаю, сам делаю игрушку на шарпе, у меня используются от силы классов 10 (Form, Graphics и всякие Point, Size и прочие). Стандартных средств в большинстве случаев за глаза хватает, нужно лишь догадаться, как применить А вообще, слушать мои советы не всегда надо, я просто люблю изобретать велосипеды |
| Автор: BestRoot 10.7.2009, 09:08 | ||
Ну начнем с того что картинка это 2-х мерный массив ,и все будет очень просто
если леняк писать ручками то можно сделать Array.Copy(); |