2 / 2 / 2
Регистрация: 09.11.2013
Сообщений: 16

Кодировка и разкодировка картинки

27.04.2014, 14:59. Показов 2204. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нахожусь в поиске информации о том, как исходную картинку , скажем "new.jpg" перекодировать в файл тхт ,состоящий из 1 и 0 , а впоследствии другой программой раскодировать его и вывести на Image1.Image.Зарание признателен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2014, 14:59
Ответы с готовыми решениями:

Разкодировка строки
Имеется задача: Шифровка (Время: 1 сек. Память: 16 Мб) Разведкой был перехвачен ряд шифровок, которые передавал Джеймс Бонд....

Кодировка программы и кодировка базы данных
В общем в архиве стандартный пример и одна из программ по редактированию sqlite. Проблема заклчается в следующем: при редактировании...

Как задать положение картинки внутри другой картинки? CSS, HTML
Добрый день. Начинаю учить веб-разработку и решил написать простенький сайт. В общем, нужно вставить изображение внутрь другого изображения...

12
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
27.04.2014, 15:31
Цитата Сообщение от lengrab Посмотреть сообщение
Нахожусь в поиске
А попробуйте поискать в этом разделе по слову "шифрование", вот у меня получилось:
Миниатюры
Кодировка и разкодировка картинки  
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
27.04.2014, 16:31
не совсем понятно что требуется создателю темы lengrab
но если ему только шифрануть данные чтоб их было
невозможно взломать то вот
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
27.04.2014, 16:47
Тебе именно текстовой, чтобы там только 0 и 1 были записаны в текстовом виде?
Это очень расточительно.
Можешь использовать стеганографию если нужно спрятать.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
27.04.2014, 18:42
Лучший ответ Сообщение было отмечено lengrab как решение

Решение

Цитата Сообщение от lengrab Посмотреть сообщение
скажем "new.jpg" перекодировать в файл тхт ,состоящий из 1 и 0
Любая картинка в памяти компьютера развернется в "битмап". Если без канала прозрачности, будем считать, что это JPG то каждый пиксель изображения будет содержать информацию о 3-х цвектах, а именно RGB. Т.о. маленькое фото размером 800х600 пикселей будет содержать 480000 точек.
В цикле For\Next проходим по всем точкам изображения, находя значения Point(x, y) раскладывая на составляющие R G B отдельно.
Visual Basic
1
2
3
4
5
6
Dim Color as Long
Dim R As Byte, G As Byte, B As Byte
Color = Picture1.Point(x, y)
R = Color And &HFF
G = (Color \ 256) And &HFF
B = (Color \ 65536) And &HFF
Максимальное число HEX=FF, которое после преобразования в 1 и 0 будет иметь вид 1001010101, и даже 0 придется изобразить в виде 0000000000, иначе потом не раскодировать! Т.о. на один цвет потребуется 30 знаков ( байт). У нас всего 480000*30 ~ 14 мегабайт информации в текстовом файле.
Более расточительно способа придумать уже сложно. Но идея реализуема!
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
27.04.2014, 18:53
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Более расточительно способа придумать уже сложно. Но идея реализуема!
по идее нужно хранить в 3-х байтах 24-бит
или в 4-х если добавить канал прозрачности
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
27.04.2014, 18:53
У меня есть проект близкий к Вашей теме.
В архиве содержится текстовый файл со ссылкой на теорию.
Миниатюры
Кодировка и разкодировка картинки  
Вложения
Тип файла: rar XOR_AND_OR.rar (3.6 Кб, 13 просмотров)
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
27.04.2014, 18:53
???
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
27.04.2014, 20:47
SoftIce, с ЧБ изображением проблем нет. Там всё вообще элементарно - цвет 1 нет цвета 0. Записал в файл.
А если записывать эти данные побитно, то можно сократить запись в файл в 8 раз.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
27.04.2014, 20:50
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Более расточительно способа придумать уже сложно.
Хранить знаки в юникоде .
SoftIce, метод Point (GetPixel) очень медленный (создается временный растр, потом вызывается BitBlt, растр уничтожается). Намного быстрей извлекать все пиксели сразу. Вот пример одновременной конвертации в 1bpp и наложением маски, записи обратно в Image
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
 
Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As Any, ByVal wUsage As Long) As Long
Private Declare Function SetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As Any, ByVal wUsage As Long) As Long
 
Private Sub Form_Load()
    Dim pix()       As Byte
    Dim bi(11)      As Long
    Dim pic         As IPicture
    Dim s           As Long
    Dim Mask(7)     As Integer
    Dim x           As Long
    Dim y           As Long
    
    Set pic = Image1.Picture
 
    bi(0) = 40
    GetDIBits Me.hdc, pic.Handle, 0, ScaleY(pic.Height, vbHimetric, vbPixels), ByVal 0&, bi(0), 0
    bi(4) = 0: bi(3) = &H10001
    
    s = bi(1) \ 8: If s And &H3 Then s = (s And &HFFFFFFFC) + 4
    ReDim pix(s - 1, bi(2) - 1)
 
    GetDIBits Me.hdc, pic.Handle, 0, bi(2), pix(0, 0), bi(0), 0
    
    ' Создаем шахматную маску
    Mask(0) = &HF0: Mask(1) = &HF0: Mask(2) = &HF0: Mask(3) = &HF0
    Mask(4) = &HF: Mask(5) = &HF: Mask(6) = &HF: Mask(7) = &HF
    
    For y = bi(2) - 1 To 0 Step -1: For x = 0 To s - 1
        pix(x, y) = pix(x, y) And Mask(y And &H7)
    Next: Next
    
    SetDIBits Me.hdc, pic.Handle, 0, bi(2), pix(0, 0), bi(0), 0
    
End Sub
Миниатюры
Кодировка и разкодировка картинки  
3
27.04.2014, 20:58

Не по теме:

Я как-то разрабатывал одно устройство на МК, так вот там экран состоял из 128 пикселей по горизонтали и 16 по вертикали по 1 биту на пиксель. Для его эмуляции и отладки я сделал на VB прогу имитирующую этот экран, сначала тоже делал Point'ом и FPS конечно же был очень низким (там еще пиксели располагались по вертикали), потом я нашел вот эти классные функции SeDiBits, GetDiBits в связке с PlgBlt фпс у меня поднялся во много раз. С тех пор Point использую только для малого кол-ва точек

0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
27.04.2014, 21:02
Наверное можно и экранную заставку делать ?
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
27.04.2014, 21:05
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Наверное можно и экранную заставку делать ?
DirectX8 тебе в помощь. Я бы никогда не стал писать игру или что-то подобное на GDI. Хотя можно рисовать в массивах и потом SetDiBitsToDevice одной строчкой (каку меня в линзе), но зачем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2014, 21:05
Помогаю со студенческими работами здесь

Загрузка картинки (имя картинки заносится в базу, но на сервер она не закачивается)
Добрый вечер! Друзья выручайте... Набросал код (кое что взял с Интернета) для загрузки картинок: <?php if (isset($_FILES)) { ...

Записываю в таблицу картинки из Img контрола, как узнать размер картинки?
Заполняю в цикле Img контейнер картинками из shape группы из эксела. Картинки могут быть реальными фотографиями, а могут оказаться...

можно ли (и как) получить размеры картинки из файла до вывода собственно картинки на клиента?
Подскажите, плз, можно ли (и как) получить размеры картинки из файла до вывода собственно картинки на клиента? Желательно с помощью...

Как меню показанное на картинки разбить в два столбика, на подобие второй картинки
Как меню показанное на картинки разбить в два столбика, на подобие второй картинки

Разместить картинки друг под другом, справа у каждой картинки текстовая информация
Добрый день, уважаемые специалисты. Очень нужен Ваш совет (поиском пользовалась - не нашла в чем ошибка- вроде все правильно)... ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru