![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Anonimys |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть один вопрос. Я создаю одну тестовую игрушку и хочу добавить туда, к примеру человека. Но мне нужна прозрачность, чтобы он не затирал фон там, где нету "его частей тела". Сейчас сижу на wingraph'е и работаю с bmp изображениями. Есть какие-то идеи как можно использовать прозрачность? Ведь не стану я рисовать 5000 его вариаций на разных фонах...
Помогите пожалуйста ^_^ Сообщение отредактировано: Anonimys - |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть несколько режимов вывода картинки. По умолчанию задан прямой режим - он просто выводит прямоугольник, в лоб копируя пикселы. Можно задать режим AND и режим OR. Если человечку нарисовать чёрный фон и вывести его через OR, то он не будет ничего затирать там, где фон. Но он будет странного цвета.
Поэтому сначала надо вывести чёрный силуэт человечка на белом фоне через AND, а потом вывести нормальное изображение человечка на чёрном фоне через OR. -------------------- |
Anonimys |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хм.. У меня есть процедура, она выводит изображение. Вот она
procedure LoadBMP(x,y:integer; name:string);
var f:file; bitmap:pointer; size:longint;
begin
{$I-} Assign(f,name); Reset(f,1); {$I+}
if (IOResult <> 0) then Exit;
size:=FileSize(f);
GetMem(bitmap,size);
BlockRead(f,bitmap^,size);
Close(f);
PutImage(x,y,bitmap^,NormalPut);
FreeMem(bitmap);
end;
Как эти режимы можно поменять тут, если не секрет? Ну.. Пример применения есть какой-нибудь? Именно на этой процедуре. Цитата PutImage(x,y,bitmap^,NormalPut); Может быть тут? "NormalPut"Сообщение отредактировано: Anonimys - |
Anonimys |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так, сделал, вроде бы все правильно. Сначала я вывожу черное-белое изображение (черное - силует человечка) через AND. Всё нормально. Но, как только я на него накладываю обычное изображение через OR, то появляется белый фон. Пробовал менять на черный - эффекта 0... Хотя силует через AND идет правильно =\
Оупс. Разобрался. Моя ошибка, когда проверял с черным фоном кое-что исправил в коде и забыл вернуть. Всё работает, большое спасибо, TarasBer ^__^ Сообщение отредактировано: Anonimys - |
![]() ![]() |
![]() |
Текстовая версия | 20.04.2025 6:53 |