-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFile160x128Graybmp2Hex.pl
61 lines (44 loc) · 1.68 KB
/
File160x128Graybmp2Hex.pl
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Платформа: FreeBSD, Linux и т.п.
# Perl5-5.26.2. Ukraine. (C) Demidov S.V.
# Пример вызова: $ perl File160x128Graybmp2Hex.pl >160x128_Gray.bmp.hex
# Для объявления переменных.
use strict;
# В случае возникновений каких-либо проблем нужно остановить работу скрипта.
use warnings FATAL => 'all';
# Верхний регистр.
use locale;
# Очистить консоль.
# system('clear');
# Объявление переменных.
my $title_hex; # Заголовок bmp файла.
my $temp; # Временный результат.
my $array; # Счётчик для массива @array_title_hex.
my $addr; # Адрес.
# Объявление массива.
my @array_title_hex;
# Получаем заголовок с 0-479h = 0-1145d.
$title_hex = `hd -n 1146 -v 160x128_Gray.bmp`;
# Разделить по \n и поместить в массив
@array_title_hex = split('\n', $title_hex);
$addr = 0;
for ($array = 0; $array < @array_title_hex - 1;)
{
# Отрезать адрес.
$temp = substr($array_title_hex[$array], 10);
# Отрезать ASCII.
$temp = substr($temp, 0, 48);
# Удвляем пробелы в строке.
$_ = $temp;
s/ //g;
$temp = $_;
# Добавляем одинарные кавачки.
$temp = "'" . $temp . "'";
# Добавляем точку с запятой.
$temp = $temp . ';';
# Добавляем адрес с правой стороны.
$temp = $temp . ' # ' . uc(sprintf("%04x", $addr)) . '.';
print $temp;
print "\n";
$addr = $addr + 16;
$array++;
}