Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255

Вывод изображения. Аналог модуля Vesa (TP) для PABC.Net

04.08.2018, 18:21. Показов 1523. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возник вопрос: Как в PascalABC.NET вывести изображение так, чтобы пиксели с определенным цветом "не замазывали" пространство под собой. В турбо паскале есть модуль Vesa, и там есть режим вывода изображения X0RPut который выводит изображение так, чтобы пиксели с чёрным цветом "не замазывали" пространство под собой.
Или если можно чтобы изображение вообще ничего "не затирало".
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.08.2018, 18:21
Ответы с готовыми решениями:

Переделать код с PABC.Net: вывод наибольших элементов массива
Помогите переделать код на C# и С++ Задача: Задан массив Arr из S элементов и число N < S. Не прибегая к сортировке, определить и...

Переведите с PABC.NET на TP
Написал программу на PABC.net. Не подскажите, на PT она будет выглядеть так же? Если нет, то как. begin ...

Переведите с PABC.NET на TP
Переведите на Паскаль Турбо с Паскаль ABC: begin var (a1, a2, n, arr):=(readreal,readreal,readinteger,new list<real>); ...

11
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
05.08.2018, 17:15
Так что-ли: Создать движение картинки поезда по рельсам в кругу, к примеру, леса
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
05.08.2018, 17:37
Цитата Сообщение от Get_Over_Here Посмотреть сообщение
В турбо паскале есть модуль Vesa,
Забудьте о VESA, в стандарте ТР-GRAPH есть реальная п/п-ма, т.е. она(VESA) прокладка над стандартом.
PutImage (процедура) (модуль Graph)
Помещает битовое изображение на экран.

Объявление: Procedure PutImage(X, Y : Integer; var BitMap; BitBlt : Word);
Режим: Real, Protected

Замечания:
Точка с координатами (X, Y) - верхний левый угол прямоугольной области на
экране. BitMap - нетипизированный параметр, в котором содержится высота,
ширина и двоичный образ изображения, которое будет помещено на экран. BitBlt
определяет, какая двоичная операция будет использована при выводе
изображения на экран.

Каждой двоичной операции соответствует константа. Например:

PutImage (X, Y, BitMap, NormalPut) помещает на экран изображение, сохраненное в BitMap с позиции (X, Y) используя команду ассемблера MOV для каждого байта в изображении.

PutImage (X, Y, BitMap, XORPut) помещает на экран изображение, сохраненное в BitMap с позиции (X, Y) используя команду ассемблера XOR для каждого байта в изображении. Это часто используемая методика в анимации для перемещения изображения по экрану.

PutImage (X, Y, Растр, NotPut) инвертирует биты в BitMap и затем помещает на экран изображение, сохраненное в BitMap с позиции (X, Y) используя команду ассемблера MOV для каждого байта в изображении. Таким образом, изображение появляется в инвертированном виде по отношению к первоначальному.
Раз в АВС нет аналога, пишите свой аналог:
Pascal
1
2
3
4
5
6
7
for x:=0 to xSizeMax do
  for y:= 0 to ySizeMax do
    begin
      GetPixel(x,y)
      трям опереция
      SetPixel(x0+x,y0+y,результат операции)':
    end;
ps:только идея,
0
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255
05.08.2018, 18:06  [ТС]
Попробую написать...

Добавлено через 24 минуты
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Раз в АВС нет аналога, пишите свой аналог:
Я не знаю есть в ABC аналог или нет, поэтому и спрашиваю
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
06.08.2018, 02:21
Через getpixel/setpixel очень медленно, есть спрайты для анимации если двигать статические картинки, то хватит и picture. Подробно задание напишите.
0
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255
06.08.2018, 09:04  [ТС]
Делаю танчики.
Есть отдельно изображение корпуса танка на белом фоне и башни танка на белом фоне.
Нужно Вывести сначала корпус а потом башню, и вопрос есть ли какие процедуры, функции для того чтобы башня не затирала корпус и можно было ее свободно перемещать с помощью мыши без перерисовки экрана.
Просто это значительно увеличит скорость работы программы( ну по крайней мере так думаю я)

Добавлено через 1 минуту
Попробовал выводить отдельные пиксели, получилось очень долго(изображение 269на 269 пикселей рисует 2,5 секунды)
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
06.08.2018, 15:57
рисуй элементы в png с прозрачным фоном, засовывай в picture и размещай ничего под прозрачным фоном затираться не будет.
0
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255
06.08.2018, 16:08  [ТС]
А прозрачный фон это который в виде белый и серый пикселей?
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
06.08.2018, 16:50
альфа-канал=0;

Добавлено через 6 минут
В том-же gimp любое изображение имеет фоновый прозрачный слой, выделяешь фигуру контуром и вставляешь на чистый лист и сохраняешь как png true color. Вот и будет изображение с прозрачным фоном
1
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255
06.08.2018, 17:34  [ТС]
Еще проблема: Сохранил с прозрачным фоном, но он почему-то считается как белый и выводится изображение с белым фоном
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
07.08.2018, 01:50
давай картинку и код
0
79 / 49 / 23
Регистрация: 15.07.2018
Сообщений: 255
07.08.2018, 10:44  [ТС]
Уже все получилось
Пока писал пример, все сработало...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.08.2018, 10:44
Помогаю со студенческими работами здесь

Перевести код с C# на PABC.NET
Всем привет! Помогите, пожалуйста, перевести данный код на PABC.NET: public string GetCellValue(int rowIndex, int columnIndex) { ...

Переведите с PABC.NET на Turbo Pascal
begin var(x,n,s,sl):=(ReadReal('x ='),ReadInteger('n ='),0.0,1.0); for n := 1 to n do (s,sl):=(s+sl,sl*x/n); WriteLn(s); end....

Обсуждение (pabc.net и free pascal)
Если хотите писать на Паскале настоящем (!) пишите на Free Pascal. По поводу меток - забудьте и не используйте везде где попало. Это...

Некорректный вывод BMP - VESA
Здравствуйте! Есть проблема. Пытаюсь вывести BMP картинку(24bpp) в режиме VESA(1024x768x24). Написал процедуру, все вроде как...

Вывод точки на экран в VESA-режимах
Здравствуйте, уважаемые коллеги. Я в программировании далеко не начинающий, и честно говоря немного смущен необходимостью обращаться к...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru