Лабораторная работа №4.3
«Разработка расширения 
Inkscape для создания автомобильных номеров»

Задание:

Разработайте расширение Inkscape для для создания автомобильных номеров.

Минимальные исходные данные, которые расширение должно запрашивать у пользователя:

Расширение должно рисовать номера в соответствии с выбранным типом и данными из файла.

 

Так, например, если был выбран тип номера «Стандартный автомобильный номер» и в файле хранились данные:

M796MM34RUS

M679MM34RUS

M967MM34RUS

M666MM34RUS

то расширение должно нарисовать:

 

 

Типы российских автомобильных номеров

 

Стандартный автомобильный номер

Автомобильный код — индивидуальный регистрационный номер автомобиля. Комбинации на номерных знаках (исключения: номерные знаки маршрутных ТС, военных ТС, ТС дипломатических миссий, ТС МВД, прицепов) строятся по принципу — 3 буквы, 3 цифры. Буквы означают серию номерного знака, а цифры — номер. ГОСТом для использования на знаках разрешены 12 букв кириллицы, имеющие графические аналоги в латинском алфавите — А, В, Е, К, М, Н, О, Р, С, Т, У и Х. В правой части номерного знака, в обособленном четырeхугольнике, расположены: в нижней части — флаг РФ с надписью RUS, а в верхней — кодовое обозначение субъекта РФ, где был зарегистрирован автомобиль.

 

Стандартный автомобильный номер

 

 

Регистрационный знак транспортных средств МВД РФ

Обозначить цветом милицейских автомашин руководство МВД в качестве эксперимента решило ещё в 1999, когда правительство распорядилось сократить количество спецсигналов. Официально синие номера утвердили в 2002. Устанавливаются на легковые и грузовые автомобили, мотоциклы и прицепы. Формат: буква - 4 цифры. Цифровой код, указывающийся в правой части номерного знака также, как и на большинстве других номеров РФ, обозначает регион регистрации. Исключение: код 77, указывающий на принадлежность транспортного средства к МВД РФ (своеобразный «федеральный» номер МВД).

 

Регистрационный знак транспортных средств МВД РФ

 

Варианты (а/м номер по стандарту страны)

1.      Австрия

2.      Азербайджан

3.      Албания

4.      Андорра

5.      Армения

6.      Белоруссия

7.      Бельгия

8.      Венгрия

9.      Германия

10.    Греция

11.    Грузия

12.    Исландия

13.    Лихтенштейн

14.    Молдавия

15.    Монако

16.    Словакия

17.    Турция

18.    Хорватия

19.    Черногория

20.    Чехия

 

Отчет о работе должен содержать:

 

Загрузка изображения из JPG-файла

Подключаемые модули:

import sys

import inkex

import os

import base64      

 

 

Способ 1 – внедрение растрового изображения в svg-документ

svg = self.document.getroot()

layer = inkex.etree.SubElement(svg, 'g')

img = inkex.etree.Element(inkex.addNS('image','svg'))

file = open('c:\\ava.jpg',"rb").read()

img.set(inkex.addNS('href','xlink'),

       'data:image/jpeg;base64,'+base64.encodestring(file))

img.set('x','0')

img.set('y','0')       

img.set('width','100')       

img.set('height','100')

layer.append(img)              

layer.set(inkex.addNS('label', 'inkscape'), 'Layer with image' )

layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')

 

 

Способ 2 – ссылка на внешний файл с растровым изображением

svg = self.document.getroot()

layer = inkex.etree.SubElement(svg, 'g')

img = inkex.etree.Element(inkex.addNS('image','svg'))

img.set(inkex.addNS('href','xlink'), 'file:///c:/ava.jpg’)

img.set('x','0')

img.set('y','0')       

img.set('width','100')       

img.set('height','100')

layer.append(img)              

layer.set(inkex.addNS('label', 'inkscape'), 'Layer with image' )

layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')