3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
1 | |
Работа с байтами17.08.2017, 21:14. Показов 6611. Ответов 24
Метки нет (Все метки)
Здравствуйте!
Решил сделать Байт в C# - переменная, которая может иметь значение от 0 до 255. Но я видел, что байт может хранить и какие то странные сочетания букв и цифр. Что это вообще такое? Мне для работы с цветом пикселя нужны только значения от 0 до 255. Т.е. мне так же и с помощью классов BitConverter и Encoding надо получать байты с вышеуказанным диапазоном. Даже не знаю с чего копать, с байтами встречался только при работе с сокетами. Спасибо за помощь заранее!
0
|
17.08.2017, 21:14 | |
Ответы с готовыми решениями:
24
Работа с бинарными байтами Работа с UTF байтами Работа с байтами Работа с байтами в С++ |
Администратор
|
|
18.08.2017, 00:33 | 2 |
Сообщение было отмечено Jesterru как решение
Решение
Jesterru,
Возможно речь о шестандецитиричных значениях. 17810=B216=10110102.
Получай. В чем проблема? Байт это всегда байт - т.е. число в диапазоне 0..255 - независимо от того кто его вернул.
1
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
|
18.08.2017, 03:36 | 3 |
Сообщение было отмечено Jesterru как решение
Решение
Это представление байта в шестнадцатеричной системе — для удобства в некоторых ситуациях.
Но представление — оно и есть представление, просто способ записи значения "на бумаге". 25510 = 0xFF16 = 111111112 = двести пятьдесят пять. Представлено (написано) по-разному, а значение одно и то же. Вот байт — он хранит значение, а то, как это значение выведено на монитор, дело десятое.
1
|
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,597
|
|
18.08.2017, 04:57 | 4 |
Jesterru, мне кажется или в прошлой теме тебе объяснили, что не пиксель байты хранит, а байты пиксель? И в зависимости от формата изображения количество байт на пиксель будет варьироваться. Я уже не говорю про всякие JPG, которые сжимают изображения с потерей качества и, соответственно, изначального содержимого изображения.
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
18.08.2017, 08:41 [ТС] | 6 |
Usaga,
Ну так я и собираюсь использовать форматы, которые не теряют качество, и имеют такой параметр, как прозрачность. Да, я понимаю. Но как удобнее - 1 байт хранит 0.25 пикселя, или же 1 пиксель хранит 4 байта? Добавлено через 2 минуты Wolfdp, 5 байт? Если использовать png, то тогда 1 пиксель будет полностью прозрачным, а у 2го пикселя один из параметров будет 0 (Предположим, что прозрачность будет использоваться первой, тогда все эти 2 пикселя будут прозрачными. Но все зависит от того, какой формат изображения вы используете)
0
|
Wolfdp
|
18.08.2017, 08:44
#7
|
1
|
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,597
|
|
18.08.2017, 08:45 | 8 |
Jesterru, можно спросить зачем вообще это занятие нужно? Чего вы добиться пытаетесь?
0
|
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,597
|
|
18.08.2017, 08:46 | 10 |
Jesterru, можно спросить зачем вообще это занятие нужно? Чего вы добиться пытаетесь?
Это зависит от "глубины" цвета - количества бит на компоненту цвета пикселя.
0
|
18.08.2017, 08:54 | 11 |
Usaga, насколько я понял, взять байты и файла, подсчитать сколько пикселей получится, засунть в них байты из файла, и посмотреть что из этого получится.
Jesterru, я вообще пытаюсь намекнуть, что во-первых сам параметр пикселя не особо делим под байты, во-вторых изображение имеет ширину*длину. Почему из исходного файла в 300 байт должна получится картинка 10*10, а не скажем 4*25? И очередность заполнения будет слева направо по рядам, или снизу вверх по столбцам?
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
18.08.2017, 09:02 [ТС] | 12 |
Wolfdp, В том то и дело - ничем
0
|
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,597
|
|
18.08.2017, 09:02 | 13 |
Wolfdp, или "спрятать" данные в альфа-слое изображения)))
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
18.08.2017, 09:07 [ТС] | 14 |
Usaga, Я исследую C# а в частности WinForms. Просто вот мне стало интересно. Но зачем искать такие программы (Которых в интернете, наверное, и нет), если можно сделать самому? И вот при работе с этой программой я наконец понял
Все, что я делаю - исследование языка/научный интерес Добавлено через 1 минуту Wolfdp, По рядам. Пользователь сам выбирает размер и формат изображения
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
18.08.2017, 09:12 [ТС] | 16 |
Кстати, это идея. Например изменять альфа канал в таком диапазоне, который незаметен человеческому глазу. Например, изменение альфы в диапазоне 251-255. Выходит, что один пиксель будет хранить 1/64 байта. Для хранения 1 байта потребуется 64 пикселя. Изображение 512х512 будет хранить 4 кб данных. Очень низкая плотность, но возможность то есть.
0
|
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,597
|
|
18.08.2017, 09:19 | 17 |
Как и сходить на стол "по-большому" Польза строго такая же
Вы лучше реализуйте какой-нибудь алгоритм сжатия типа LZW или Haffman или ещё что-нибудь в таком духе. Это намного полезнее будет. И с байтами поработаете и поймёте принцип действия некоторых существующих вещей. А так выглядит как пустая трата времени под соусом "поучиться".
0
|
18.08.2017, 09:28 | 18 | |||||
программа стала еще унылей. 3571 к примеру является простым числом, вы сможете для него создать только картинку в один пиксель высотой и как два монитора шириной.
Вам придется использовать фиксированое количество цветов, как в gif. Смотрите, если вы привяжетесь к класической RGB, то входные данные должны быть кратны трем, иначе недостающие цвета нечем будет заполнять, и у вас будет фигня что 5 байтов заполненые нулями будут равны 6 байтам заполнены темиже нулями. При использовании словарю у вас один байт соответствует одному цвету. Да, вы теряете в глубине, но полностью отвязываетесь от кратности. Самый простой вариант формирования значений на лету
вы страдаете непонятно чем. В изучении шарпа и закриплении знаний это вам не поможет. Добавлено через 2 минуты Поздравляю, вы только что узнали об стегонографии.
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
18.08.2017, 09:52 [ТС] | 19 |
Если использовать для кодировки Encoding, то все привычные символы будут иметь значение, отличное от нуля.
Ну, как минимум я чуть больше узнал о байтах. Польза есть. А "насильно учить" себя - тоже не вариант. Что приходит в голову, то и делаю. Всегда встречаюсь с тем, чего не знаю. И всегда получаю новые знания Добавлено через 15 секунд Есть варианты, как осуществить формирование размера, по пропорциям не превосходящий n : k ?
0
|
18.08.2017, 10:10 | 20 |
Учитывая что вы планируете внедрять избыточность на основе Base64, можно доводить до n*k темиже "пустыми" пикселями.
0
|
18.08.2017, 10:10 | |
18.08.2017, 10:10 | |
Помогаю со студенческими работами здесь
20
Работа с байтами =) Работа с байтами из FileStream. Работа с байтами клавиатуры Работа с битами и байтами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |