Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
11 / 11 / 12
Регистрация: 06.05.2015
Сообщений: 421

Повторение изображения в DrawImage

27.02.2017, 14:08. Показов 2050. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я рисую изображение:
C#
1
e.Graphics.DrawImage(Properties.Resources.spr_earth, new Rectangle(new Point(1, this.Height - 150), new Size(13, this.Height - (this.Height - 150))));
Оно маштабируется на размер прямоугольника, можно ли сделать не маштабирование, а добавление опять таки этой картинки?

Добавлено через 24 минуты
C#
1
2
3
4
      Image image = new Bitmap(Properties.Resources.spr_earth);
            TextureBrush tBrush = new TextureBrush(image);
 
            e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, this.Width, 120));
Нашел такое, однако, если рисую в координате 0,0. то все нормально.
Если хочу рисовать в 0, 300, то оно и изображение как то коряво вообще обрезает...

Добавлено через 1 час 45 минут
Нашел решение, что можно двигать при помощи
C#
1
tBrush.Transform = new Matrix(1, 0, 0, 1, 9, -3);
Но подскажите, можно ли как-то закрепить, что бы этот фрагмент вставлялся именно с начала и не надо было подстраивать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2017, 14:08
Ответы с готовыми решениями:

DrawImage мерцает
Почему у меня очень сильно мерцает изображение при частом вызове команды DrawImage?

DrawImage на форму
Добрый день, такая проблема: Нужно вывести на форму картинку шириной 1px(повтор по оси X) и заранее не известно какой длинной вся картинка,...

.DrawImage неккорректно отображается
private void button1_Click_1(object sender, EventArgs e) { int a = 0; Image im =...

5
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
27.02.2017, 15:46
Не совсем понятно что именно нужно, но вот:
C#
1
2
var location = new Point(); // меняем на свои координаты
e.Graphics.DrawImage(Properties.Resources.spr_earth, new Rectangle(location, Properties.Resources.spr_earth.Size));
0
11 / 11 / 12
Регистрация: 06.05.2015
Сообщений: 421
27.02.2017, 20:53  [ТС]
У меня есть изображение.
Я загружаю его в
C#
1
TextureBrush tBrush
Потом я хочу его поставить например в координату 10,10 на форме, делаю это так:
C#
1
e.Graphics.FillRectangle(tBrush, new Rectangle(10, 10, размер изобр.));
Но выводит изображение, будто бы оно размещено на 0,0 а мне показывается его дальше (повтором).
Т.е. я хочу что бы просто мой tBrush вывел однократно мою картинку, начиная с самого начала координат картинки.
А оно выводит по-другому.
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
27.02.2017, 20:59
Rider98, а зачем TextureBrush ? Просто, чтоб нарисовать одну картинку?
0
11 / 11 / 12
Регистрация: 06.05.2015
Сообщений: 421
27.02.2017, 21:06  [ТС]
Цитата Сообщение от sldp Посмотреть сообщение
а зачем TextureBrush ? Просто, чтоб нарисовать одну картинку?
Этим свойством удобно сделать небольшой наклон градусов на 10-15. Через e.Graphics.DrawImage вроде бы не все так просто.
C#
1
 tBrush.Transform = new Matrix
0
11 / 11 / 12
Регистрация: 06.05.2015
Сообщений: 421
28.02.2017, 12:25  [ТС]
Попробую обьяснить ещё раз... надеюсь будет понятней.
Пытался написать игру, и проблема заключается в том, что две картики-ресурса вывожу через TextureBrush, и на разных компьютерах они отображаются по разному.
На первой картинке отображается все хорошо, так при открытии на моем компьютере.
При открытии на другом объекты полу-сдвинуты (вторая картинка)
На третей картинке показаны ресурсы.
Вот код вывода нижнего фрагмента:
C#
1
2
3
4
Image fl = new Bitmap(Properties.Resources.spr_earth);
TextureBrush flBrush = new TextureBrush(fl);
flBrush.Transform = new Matrix(1, 0, 0, 1, -t1, 71);
e.Graphics.FillRectangle(flBrush, new Rectangle(0, this.Height - 150, this.Width, 110));
Миниатюры
Повторение изображения в DrawImage   Повторение изображения в DrawImage   Повторение изображения в DrawImage  

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2017, 12:25
Помогаю со студенческими работами здесь

DrawImage обрезает картинку
Image em_cel = Image.FromFile(@"Icons\Empty_Cells.PNG"); e.Graphics.DrawImage(em_cel, 5,5,20,20); Почему если писать подобие...

DrawImage vs Drawline & Drawlines
Привет всем, Насколько понимаю: DrawImage - метод, суть которого в выводе заранее заготовленной "картинки", которая уже...

DrawImage рисует картинку размером больше, чем исходная
загружаю bitmap размером 24 на 24. в отладке смотрю в свойствах. она именно таких размеров рисую ее на другой заранее подготовленной...

Graphics.DrawImageUnscaled и есть Graphics.DrawImage
Подскажите пожалуйста. Чем отличаются методы Graphics.DrawImageUnscaled и есть Graphics.DrawImage?

Повторение фонового изображения
народ как сделать повторение фонового изображения repeat-x это по иксу а как что бы по x и y повторялось


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru