Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2013, 22:56   #11
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А если установить прозрачный цвет, это нуль вроде?
Вадим Мошев вне форума Ответить с цитированием
Старый 02.05.2013, 13:23   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
А если установить прозрачный цвет, это нуль вроде?
В общем случае - нет.
Обычно 0 обозначается черный цвет, который, как правило, нужен и сам по себе.
Собственно, понятие "прозрачный цвет" используется только для тех форматов файлов. в которых не предусмотрена прозрачность. Если она есть - "прозрачного цвета" попросту нет - за ненадобностью.
Если же формат файла с изображением не предусматривает прозрачности, один из цветов может использоваться как прозрачный. При этом способ выбора зависит от формата файла, в частности, используется индексное или непосредственное кодирование цвета.
При индексном - прозрачным может быть любой индекс - какого-либо ограничения здесь не существует - исключительно вопрос удобства. Но с точки зрения удобства 0-й цвет оказывается неудачным выбором.
При непосредственном - появляется серьезное ограничение - прозрачный цвет не должен использоваться в изображении. Поэтому 0 - вариан не просто неудобный, а совершенно неприемлемый - черный цвет нужен всегда.
Обычно выбирают пурпурный максимальной интенсивности и насыщенности (255,0,255), т.к. это самый "синтетический" из всех цветов, а потому в природе в чистом виде не встречающийся.

PS. Перечитал Ваше сообщение - у меня складывается впечатление, что Вы неверно представляете, что такое прозрачный цвет. Это не тот цвет, который восстанавливает фон (такого цвета нет в принципе), а тот - который не рисуется. Т.е. PutPixl(x, y, прозрачный цвет) оставляет цвет точки (x, y) без изменения.

Последний раз редактировалось s-andriano; 02.05.2013 в 13:26.
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 16:41   #13
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

s-andriano
Говоря про нуль, я имел в виду то, какой цвет ставит Паскаль числам от 0 до 15, а не систему RGB. Я знаю, что нуль соответствует наименьшей интенсивности конкретного цвета.

Цитата:
Собственно, понятие "прозрачный цвет" используется только для тех форматов файлов. в которых не предусмотрена прозрачность.
ИМХО, изображение, хранящееся в формате, который не поддерживает прозрачный цвет, не будет содержать прозрачных элементов - вместо них будет отображаться какой-то НЕПРОЗРАЧНЫЙ цвет (возможно, белый).

Цитата:
PS. Перечитал Ваше сообщение - у меня складывается впечатление, что Вы неверно представляете, что такое прозрачный цвет. Это не тот цвет, который восстанавливает фон (такого цвета нет в принципе), а тот - который не рисуется. Т.е. PutPixl(x, y, прозрачный цвет) оставляет цвет точки (x, y) без изменения.
Это мне, вроде, понятно. Кроме того, я прекрасно понимаю, что цвет - всегда монотонен, и он не может совпадать с фоном, который может представлять собой композицию нескольких цветов. Так что, думаю, что я не ошибался.
Вадим Мошев вне форума Ответить с цитированием
Старый 02.05.2013, 17:14   #14
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
s-andriano
Говоря про нуль, я имел в виду то, какой цвет ставит Паскаль числам от 0 до 15, а не систему RGB.
В стандарте языка этого нет, а конкретная реализация очень сильно зависит от компилятора. И, самое главное, большинство имеющихся реализаций, возможно, пригодны для реализации простейших обучающих примеров, но совершенно непригодны ни для какого реального применения.
Поэтому, на мой взгляд, целесообразнее опираться на то, что может предложить ОС. А там такого понятия как "прозрачный цвет" нет.
Цитата:
ИМХО, изображение, хранящееся в формате, который не поддерживает прозрачный цвет, не будет содержать прозрачных элементов - вместо них будет отображаться какой-то НЕПРОЗРАЧНЫЙ цвет (возможно, белый).
Что значит "не будет содержать"?
Если судить по формальному критерию, то это тавтология: "из отсутствия прозрачности вытекает отсутствие прозрачности".
Если брать реальные задачи, то в просмотрщике или редакторе, конечно, такой рисунок будет занимать все отведенное ему поле без пробелов. Но в конкретном софте, для которого этот файл предназначался (например, для игры) - будет именно изображение с прозрачным цветом, т.е. изображение сложной формы, не покрывающее всю площадь описанного прямоугольника.
Цитата:
Это мне, вроде, понятно. Кроме того, я прекрасно понимаю, что цвет - всегда монотонен, и он не может совпадать с фоном, который может представлять собой композицию нескольких цветов. Так что, думаю, что я не ошибался.
Мне просто показалось, будто Вы считаете, что запись в пиксель "прозрачного цвета" восстановит исходный цвет фона (удалит нарисованное поверх фона изображение).
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 17:57   #15
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

s-andriano
Цитата:
В стандарте языка этого нет, а конкретная реализация очень сильно зависит от компилятора.
То есть, вы хотите сказать, что один и тот же код, который будет рисовать белый квадрат на одном компиляторе, на другом может сделать квадрат какого-то другого цвета?
Я понимаю, что эта моя фраза звучит технически неграмотно, но я пытался передать смысл.
Кстати, по поводу слова "реализация". Реализация чего? Имеете в виду, результат? Или реализация языка (Turbo Pascal, Pascal ABC, Free Pascal)?

Цитата:
А там такого понятия как "прозрачный цвет" нет.
Ну там же есть что-то такое, что мы можем принять как прозрачность? Когда я открываю gif/png/ico форматы, где есть прозрачность, например, ярлык к какой-то программе, то я ту самую прозрачность и вижу. Так почему нам не отождествить понятие "прозрачный цвет" с тем, что там используется на самом деле?

Цитата:
Но в конкретном софте, для которого этот файл предназначался (например, для игры) - будет именно изображение с прозрачным цветом, т.е. изображение сложной формы, не покрывающее всю площадь описанного прямоугольника.
Не уверен. Пример можно? Вот например, в браузерах изображения в формате, не поддерживающим прозрачность, не будут содержать прозрачные элементы, то есть они будут покрывать всю площадь описанного прямоугольника. И сорри за тавтологию, но всё-таки импликация с двумя одинаковыми операндами истинна всегда .
Вадим Мошев вне форума Ответить с цитированием
Старый 02.05.2013, 20:25   #16
palyach
 
Регистрация: 01.04.2013
Сообщений: 7
По умолчанию

Воу воу воу Ребят я не совсем про в паскале,скорее даже рак
Но я так понял надо привязать значения мыши,прибавлять их к "основе" и рисовать его по новой,а старый фон зарисовывать ,для этого нужен цикл. Я вообщем так и думал,но я не знаю как это сделатьПоэтому я и прошу помощи...
ИМХО лучше просто заменить объект RectangleABC на свой,но как?приведите пример,а там я сам разберусь.
palyach вне форума Ответить с цитированием
Старый 02.05.2013, 20:57   #17
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
s-andrianoТо есть, вы хотите сказать, что один и тот же код, который будет рисовать белый квадрат на одном компиляторе, на другом может сделать квадрат какого-то другого цвета?
Нет, на другом он не будет даже компилироваться.
Цитата:
Реализация чего?
Графической библиотеки.
Цитата:
Ну там же есть что-то такое, что мы можем принять как прозрачность? Когда я открываю gif/png/ico форматы, где есть прозрачность, например, ярлык к какой-то программе, то я ту самую прозрачность и вижу. Так почему нам не отождествить понятие "прозрачный цвет" с тем, что там используется на самом деле?
Насчет всех форматов не уверен, но в тех, с которыми мне приходилось сталкиваться, прозрачность организована не посредством прозрачного цвета, а либо посредством маски, либо специальным кодом, который говорит, грубо говоря, сколько пикселей надо пропустить. Это совершенно различные технологии.
Прозрачный цвет - это один из вариантов описания прозрачности, но есть и другие.
И в ех форматах файлов, где реализуется прозрачность, как правило, используются именно другие, т.к. являются более экономичными.
Вариант прозрачного цвета обычно используется как раз для обеспечения прозрачности на основе тех форматов файлов, в которые эта прозрачность не предусмотрена.
Цитата:
Не уверен. Пример можно?
Пример чего?
Список игр, в которых это используется?
Если бы Вы задали мне этот вопрос лет 10-15 назад, я бы привел Вам такой список. Сейчас, боюсь, я уже не припомню в каких играх какие форматы использовались.
Цитата:
Вот например, в браузерах изображения в формате, не поддерживающим прозрачность, не будут содержать прозрачные элементы, то есть они будут покрывать всю площадь описанного прямоугольника.
Мы говорим о совершенно разных случаях.
Браузер обязан отображать любые файлы, которые ему подсунули. Пичем так, как этого хочет автор этих файлов (а не браузера).
Игра же работает со своими собственными файлами. При этом в случае с прозрачным цветом - вопреки стандарту.
Поэтому она может поступать с собственными файлами так, как считает нужным: рисовать их справа налево, вверх ногами, через строчку, с прозрачным цветом и т.п.
Главное - обеспечить художественный и игровой замысел.
Цитата:
И сорри за тавтологию, но всё-таки импликация с двумя одинаковыми операндами истинна всегда .
Это к чему?
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 20:59   #18
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от palyach Посмотреть сообщение
ИМХО лучше просто заменить объект RectangleABC на свой,но как?приведите пример,а там я сам разберусь.
Уверен, что код реализации объекта RectangleABC входит в состав компилятора.
Поищите его среди имеющихся файлов, и именно его используйте в качестве примера.
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 21:01   #19
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Позволю себе вторгнуться в разговор :
Цитата:
В общем случае фон может не иметь одного определенного цвета, а быть, скажем, картинкой.
Поэтому "закрасить цветом фона" может быть невозможно в принципе.
Если один цвет - запомнить его и потом закрашивать им. Если картинка - сохранять её в памяти. Потом восстанавливать.
Цитата:
А если установить прозрачный цвет, это нуль вроде?
Вадим, а что ты имеешь ввиду под словом "прозрачный"?

Цитата:
Пример можно?
См. вложение (на заднем плане видны размытые письмена )
Цитата:
Нет, на другом он не будет даже компилироваться.
Не соглашусь. Возьмите код на Turbo рисующий что-либо. Возьмем этот же самый код на Free. Он будет работать (единственная проблема, которая может нам помешать это сделать - это инициализация графики)
Изображения
Тип файла: jpg прозрачность.jpg (16.0 Кб, 90 просмотров)

Последний раз редактировалось Poma][a; 02.05.2013 в 21:06.
Poma][a вне форума Ответить с цитированием
Старый 02.05.2013, 22:44   #20
palyach
 
Регистрация: 01.04.2013
Сообщений: 7
По умолчанию

Посмотрел в примерах,но ничего не нашел. Сможет кто нибудь набросать пример?
palyach вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение граффического объекта по форме нажатием стрелок. Blaaa Windows Forms 0 01.03.2012 20:54
Перемещение объекта по форме.(Управление с клавиатуры) gralex10 Помощь студентам 1 28.03.2011 15:57
перемещение объекта за курсором мышки eu8cc Общие вопросы Delphi 2 28.09.2009 22:48
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта User>lia Общие вопросы Delphi 4 16.01.2009 16:37