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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 19:01   #1
Serg-Grin
Дивиджей
Пользователь
 
Аватар для Serg-Grin
 
Регистрация: 05.01.2009
Сообщений: 84
По умолчанию Шифрование картинки

Здрвствуйте. Я создаю игру, в ней много картинок. Как защитить картинки, чтобы их не могли просмотреть ?. Например:
- Есть картинка в директории image.(любой формат только не bmp.jpg,png какой-то выдуманый) чтобы не возможно было просмотреть ее.
А когда нажимаешь на button, чтобы она открывалась на форме в image1. точнее при открытии она перекодировалась с (неизвестного формата) в bmp, jpg , png.
Как можно реализовать такое. Помогите ?
Впишите в google:
DVJ Serg-Grin
И вы услышите мои песни

Последний раз редактировалось Serg-Grin; 04.12.2009 в 19:06.
Serg-Grin вне форума Ответить с цитированием
Старый 04.12.2009, 19:14   #2
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Я этим не занимался, но можно предстваить содержимое как текст, и кодировать и декодировать его по какому-либо алгоритму. Например с помощью функции ord получать номер символа и изменять его при кодировании. Хотя это бред. Есть специальные модули, используемые для игр, но не настолько простых, что графика там выводится в image.
И вообще зачем тебе это? От кого прятать отгугленые или нарисованные в Paint текстурки? Хотя если ты мастерский художник....
Вадим Буренков вне форума Ответить с цитированием
Старый 04.12.2009, 19:16   #3
Serg-Grin
Дивиджей
Пользователь
 
Аватар для Serg-Grin
 
Регистрация: 05.01.2009
Сообщений: 84
По умолчанию

Ну вообще было бы круто защитить картинки.
Вот еще у меня проблема с игрой:
http://programmersforum.ru/showthread.php?t=71314
Впишите в google:
DVJ Serg-Grin
И вы услышите мои песни

Последний раз редактировалось Serg-Grin; 04.12.2009 в 19:38.
Serg-Grin вне форума Ответить с цитированием
Старый 04.12.2009, 20:11   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

дык, считай сигнатуру с картинки, измени пару байт (к примеру в jpg JFIF = 4A 46 49 46, 4A меняем на 1С к примеру), а то и один, запиши обратно на тоже место, картинку и нельзя будет посмотреть... в своем проекте обратная операция... вот вам простейшая шифровка
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 05.12.2009, 00:34   #5
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ага, мера действенная, ...попортить несколько байт, затем их назад вписать. Еще можно просто изменить расширение графического файла на что-то, или вообще его не писать, ...от лоха сразу поможет, а в коде барабер что в строке, все равно возьмет.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 05.12.2009, 11:22   #6
Serg-Grin
Дивиджей
Пользователь
 
Аватар для Serg-Grin
 
Регистрация: 05.01.2009
Сообщений: 84
По умолчанию

Помогите пожалуйста реализовать это все в коде
Впишите в google:
DVJ Serg-Grin
И вы услышите мои песни
Serg-Grin вне форума Ответить с цитированием
Старый 05.12.2009, 11:30   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Не знаю, как остальные, а лично мой метод - переписать всю картинку в бинарный вид, а палитру хранить отдельно:
Код:
Procedure LoadBinaryImages;
Var
 F,F2:File;
 FFLine:String;
 X,Y:SmallInt;
 I:Byte;
 SomeBit:Byte;
 N:Array[0..15] of Integer;
 MaxX,MaxY:SmallInt;
Begin
 AssignFile(F,Directory.Resource+'\Interface.pack');
 Reset(F,SizeOf(Byte));
 AssignFile(F2,Directory.Resource+'\Palette.pal');
 Reset(F2,SizeOf(N));
 FFLine:='';
 MaxX:=0;
 MaxY:=0;
 While Not (Eof(F)) do
  Begin
   BlockRead(F,SomeBit,1);
   FFLine:=FFline+IntToHex(SomeBit,2);
  End;
 For I:=0 to 26 do
  Begin
   BlockRead(F2,N,1);
    Case I of
     0..1,4..5,7..8,11..12,15..16,20..23,25..26: Begin MaxX:=29; MaxY:=17; End;
     2..3,9..10: Begin MaxX:=61; MaxY:=17; End;
     6: Begin MaxX:=282; MaxY:=47; End;
     13:Begin MaxX:=9; MaxY:=372; End;
     17:begin MaxX:=9; MaxY:=372; End;
     14: Begin MaxX:=282; MaxY:=14; End;
     18..19: Begin MaxX:=152; MaxY:=36; End;  // (!) 37 = 36!
     24: Begin MaxX:=300; MaxY:=28; End;
    End;
   CreateBinImage(MaxX,MaxY, Bit[I]);
   For Y:=0 to MaxY-1 do
    Begin
     For X:=0 to MaxX-1 do
      Begin
       Bit[I].Canvas.Pixels[X,Y]:=N[StrToInt('$'+Copy(FFLine,1,1))];
       Delete(FFLine,1,1);
      End;
    End;
  End;
 CloseFile(F);
 CloseFile(F2);
End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.12.2009, 12:30   #8
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
Радость

В приложении пример.
Думаю с открытием/сохранением и конвертацией форматов проблем не будет ...
Вложения
Тип файла: rar C.D.I.rar (16.1 Кб, 46 просмотров)
Lime вне форума Ответить с цитированием
Старый 08.12.2009, 11:16   #9
Serg-Grin
Дивиджей
Пользователь
 
Аватар для Serg-Grin
 
Регистрация: 05.01.2009
Сообщений: 84
По умолчанию

Спасибо всем
Впишите в google:
DVJ Serg-Grin
И вы услышите мои песни
Serg-Grin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифрование Рахимжан Помощь студентам 5 29.11.2009 22:33
Шифрование Sanakan Помощь студентам 0 19.04.2009 14:55
шифрование на С# innei Помощь студентам 0 08.04.2009 22:00
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54