Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 24.10.2010, 17:20   #1
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Свой формат изображения.

Как, допустим из *.bmp в свой *.dft, перевести изображение. Т.е. чтоб ни пеинты и фотошопы не понималь твой формат, а толька твоя прога читала картинку.
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 17:26   #2
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Свой формат изображения.

Сделать свой формат изображений...
(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 17:29   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Свой формат изображения.

ну и вопрос: чтобы пеинты не понимали, достаточно в заголовке один байт изменить, что, однако, не помешает провдинутым вьюверам (типо IrFan) запалить подмену и проинформироровать пользователя. Вопрос можно аналогично перенсти на етственную речь: как писать на фоурме так, чтобы юзеры всякие не понимали? Да как угодно: хоть роаывлпор, хоть 378 391 010
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
den (24.10.2010), Phantom (24.10.2010)
Старый 24.10.2010, 20:09   #4
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Свой формат изображения.

ну надо придумать свой алгоритм:
1) сначало с нормального изображения читаеш пиксели, 1px = 3 байта (по байту для каждой цветовой компоненты)
2) пото м уже как ты пожелаеш делаеш запутанный алгоритм: типо первый бит меняеш на последний, из серединый берёш байт вставляеш на 15 позицию, ну в том же духе.
3) если хватит ума - можно сделаьть сжатие - тоесть сильное уменьшение изображение - но зато немного в качестве потеряеш.
4) записываеш всё это дело в файл.

это только запись. Чтение тоже самое, только наоборот.
(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 20:20   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Свой формат изображения.

1) сначало с нормального изображения читаеш пиксели, 1px = 3 байта (по байту для каждой цветовой компоненты)
вообще говоря - нет
3) если хватит ума - можно сделаьть сжатие - тоесть сильное уменьшение изображение - но зато немного в качестве потеряеш.
вообще говоря - нет
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Dream (25.10.2010), SBJoker (24.10.2010)
Старый 24.10.2010, 20:31   #6
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Свой формат изображения.

Можно к примеру записать в файл координаты точки, потом
__________________




(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 21:12   #7
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Свой формат изображения.

Сообщение от JACUK Посмотреть сообщение
Можно к примеру записать в файл координаты точки, потом
захрена, этож дохера весить будет. Достаточно гденибуть записать размеры изображения, и делать двойной вложеный for и читать/записывать точки по их цветам
(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 21:36   #8
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Свой формат изображения.

Можно и так.
__________________




(Offline)
 
Ответить с цитированием
Старый 24.10.2010, 21:56   #9
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Свой формат изображения.

Как, допустим из *.bmp в свой *.dft, перевести изображение. Т.е. чтоб ни пеинты и фотошопы не понималь твой формат, а толька твоя прога читала картинку.
1. Подумать каким образом будет записана информация о цвете пикселей изображения.
2. Подумать как это оптимизировать (группировать пикселы по цвету, как в PNG или, может, сделать цветовую таблицу (например, 256 цветов), чтобы на запись одного пиксела уходило меньше информации, или почитать про jpeg-сжатие и сделать что-то по типу, а можно и тупо по 3 байта на пиксель писать - вариантов масса)
3. Написать программу, которая будет записывать и читать твой формат (возможно, конвертить из других форматов).
Либо взять уже готовый формат и немного поменять его, чтобы обычные просмотрщики не отображали его корректно (если это единственная цель) - тогда переходим сразу к пункту 3. Впрочем, Импер написал полнее.

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

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Dream (25.10.2010), impersonalis (24.10.2010), JACUK (24.10.2010), Randomize (26.10.2010), Reks888 (24.10.2010)
Старый 25.10.2010, 20:42   #10
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Ответ: Свой формат изображения.

Хорошо. Тогда кто - нибудь может подсказать как читать байт графического изображения и сохранять его. А?
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Старый 25.10.2010, 21:11   #11
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Свой формат изображения.

Сообщение от Ganociy Посмотреть сообщение
Хорошо. Тогда кто - нибудь может подсказать как читать байт графического изображения и сохранять его. А?
Проще всего загрузить изображение в TBitMap и читать пиксели из него через свойство BitMap.Canvas.Pixels[x,y];.
Читаем пиксель, обрабатываем его, результат записываем в свой файл, используя TFileStream. Проще некуда.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (26.10.2010)
Старый 25.10.2010, 21:59   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Свой формат изображения.

А не проще выбрать хороший формат, и просто его кодировать?
Например перебрать все байты по алгоритму Rijndael?
(Offline)
 
Ответить с цитированием
Старый 25.10.2010, 22:12   #13
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Свой формат изображения.

А как записать цвет в файл с помощью BlockWrite? и считать с помощью BlockRead
__________________




(Offline)
 
Ответить с цитированием
Старый 25.10.2010, 22:15   #14
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Свой формат изображения.

http://www.delphibasics.co.uk/RTL.asp?Name=BlockWrite
?
Цвет это RGB (если без Alpha).
3 канала, каждый использует int (0-255 (unsigned)).
(Offline)
 
Ответить с цитированием
Старый 25.10.2010, 22:39   #15
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Свой формат изображения.

Сообщение от JACUK Посмотреть сообщение
А как записать цвет в файл с помощью BlockWrite? и считать с помощью BlockRead
А зачем BlockRead использовать?
Лучше использовать TFileStream, там есть методы ReadBuffer и WriteBuffer.
Просто пишем
var
 F:TFileStream;
 C:TColor;

begin
 F:=TFileStream.Create('c:\file.img',fmCreate);
 F.WriteBuffer(C,4);//С - переменная, 4 - размер переменной
end;
А чтобы читать данные прямо из файла, нужно знать формат.
Проще загрузить файл в соответствующий объект (TBitMap, TJPEGImage, TPNGImage(Отдельный пакет)) и читать пиксели с Canvas, если, конечно, речь не идет об очень больших избражениях.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ViNT за это полезное сообщение:
ABTOMAT (26.10.2010), JACUK (26.10.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:46.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com