Итак, FAQ о том как использовать изображения с нестандартными высотой и длиной.
* Напоминаю об ограничениях размеров в байтах для сжатых изображений. О них можно прочитать в прошлых FAQ'ах.
Как подготавливать и сжимать изображения я уже писал, поэтому здесь я кратко опишу, как корректно ими пропатчить 'secondary'.
Если Вы решили использовать хотя бы одно изображение с нестандартными высотой и длиной, то пользуйтесь инструкциями только из этого FAQ. Инструкции из этого FAQ пересекаются с инструкциями из прошлых FAQ'ов, поэтому не смешивайте их, потому что это может привести к плохим результатам.
На данный момент этот FAQ более универсален, т.к. позволяет изменить все. Можно считать его основным и пользоваться только им, а прошлые использовать для дополнительной информации.
1. Основной логотип:
а) Нижеследующие команды обязательны:
echo -ne '\x5A\xA3\x59\x88\x1B\x88\xBF\xF8\x3E\x61' | dd of=my_secondary.bin bs=1 seek=33234 conv=notrunc
echo -ne '\x3C\x4B' | dd of=my_secondary.bin bs=1 seek=33584 conv=notrunc
б) Патчим нашим сжатым логотипом 'secondary':
dd if=logo.bin of=my_secondary.bin bs=1 seek=75940 conv=notrunc
в) Указываем размер сжатого изображения в байтах, а также ширину и высоту в пикселях:
Размер (его размер должен быть не более 6646 байт). В данном примере указан размер 6646 байт -> 0x19F6 байт -> '\xF6\x19'
echo -ne '\xF6\x19' | dd of=my_secondary.bin bs=1 seek=33562 conv=notrunc
Длина. В данном примере указана длина 486 пикселей -> 0x1E6 пикселей -> '\xE6\x01'
echo -ne '\xE6\x01' | dd of=my_secondary.bin bs=1 seek=33596 conv=notrunc
Высота. В данном примере указана высота 138 пикселей -> 0x8A пикселей -> '\x8A\x00'
echo -ne '\x8A\x00' | dd of=my_secondary.bin bs=1 seek=33598 conv=notrunc
2. Цвет фона:
а) Нижеследующие команды обязательны:
echo -ne '\x17\xE0' | dd of=my_secondary.bin bs=1 seek=36834 conv=notrunc
echo -ne '\xC0\x46\x40\x4A' | dd of=my_secondary.bin bs=1 seek=36574 conv=notrunc
б) Собственно сам цвет:
echo -ne '\x00\x00\x00\x00' | dd of=my_secondary.bin bs=1 seek=36836 conv=notrunc
Небольшая шпаргалка:
Используются цвета из 16-битной палитры (rgb565, 65536 цветов). Байты необходимого цвета переворачиваем и дублируем в команде.
0xF800 это КРАСНЫЙ, значит в команде указываем '\x00\xF8\x00\xF8'
0x07E0 это ЗЕЛЕНЫЙ, значит в команде указываем '\xE0\x07\xE0\x07'
0x001F это СИНИЙ, значит в команде указываем '\x1F\x00\x1F\x00'
3. Иконка USB:
а) Патчим нашей сжатой иконкой 'secondary':
dd if=usb.bin of=my_secondary.bin bs=1 seek=82596 conv=notrunc
б) Указываем размер сжатой иконки в байтах, а также ширину и высоту в пикселях:
Размер (его размер должен быть не более 1089 байт). В данном примере указан размер 1089 байт -> 0x441 байт -> '\x40\xF2\x41\x46'
* Внимание, более наглядное обьяснение: предположим размер вашей иконки в hex получился 0хXYZ, то строка будет выглядеть '\x40\xF2\xYZ\xX6'
echo -ne '\x40\xF2\x41\x46' | dd of=my_secondary.bin bs=1 seek=33252 conv=notrunc
Длина. В данном примере указана длина 102 пикселя -> 0x66 пикселей -> '\x66'
echo -ne '\x66' | dd of=my_secondary.bin bs=1 seek=33246 conv=notrunc
Высота. В данном примере указана высота 44 пикселя -> 0x2С пикселей -> '\x2С\x21'
echo -ne '\x2C\x21' | dd of=my_secondary.bin bs=1 seek=33250 conv=notrunc
в) Необязательно! Для тех кому не нравится белое пятно после исчезновения иконки USB.
Если Вы его и не замечали, то наверное Вам это и не нужно
Сам я этого не делал, но это должно работать
echo -ne '\x00' | dd of=my_secondary.bin bs=1 seek=35126 conv=notrunc
Да, только один байт для цвета. В данном примере будет черный цвет. Указав, например, '\xAA', Вы должны получить цвет 0xAAAA. Особо не развернешься, но хоть что-то.
4. Иконка R&D:
а) Патчим нашей сжатой иконкой 'secondary':
dd if=logo.bin of=secondary.bin bs=1 seek=71976 conv=notrunc
б) Указываем размер сжатой иконки в байтах, а также ширину и высоту в пикселях:
Размер (его размер должен быть не более 3954 байт).
* Внимание, как правильно построить строку с размером иконки R&D для патчинга:
Шаблон строки: '\x40\xFk\xYZ\xX6'
k - должен быть 2 или 6. Зависит от размера иконки.
k = 2, если размер иконки менее 0х800 байт (2048 байт). Далее указываем размер так же как и в пункте 3б.
k = 6, если размер иконки более или равен 0х800 байт. В данном случае к указанному Вами числу 0xXYZ прибавляется 0x800.
Например: размер иконки = 2753 байта = 0xAC1 байт = (0х800 + 0х2C1) байт => k=6 => '\x40\xF6\xC1\x26'
echo -ne '\x40\xF6\xC1\x26' | dd of=my_secondary.bin bs=1 seek=33226 conv=notrunc
Длина. В данном примере указана длина 64 пикселя -> 0x40 пикселей -> '\x40'
echo -ne '\x40' | dd of=my_secondary.bin bs=1 seek=33222 conv=notrunc
Высота. В данном примере указана высота 54 пикселя -> 0x36 пикселей -> '\x36'
echo -ne '\x36' | dd of=my_secondary.bin bs=1 seek=33224 conv=notrunc
И все! Выглядит страшно, но если следовать инструкции, то ничего страшного не случится.