2015-07-12 1 views
0

Мне нужно создать файл Illustrator с текстовым полем с одним текстовым полем, а иногда, если возможно, и изображение в нем.Возможно ли внедрить изображение в файл FXG?

Похоже, что файл AI является двоичным, и я не уверен, как это записать. Я могу более легко написать текстовый файл, и похоже, что FXG или SVG - это принятый формат файла, который может импортировать Illustrator.

Можно ли вставить изображение в FXG?

UPDATE
В качестве примера того, что я ищу здесь файл экспортируется в SVG из Illustrator с данными вставленного изображения:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
    width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve"> 
    <image overflow="visible" width="400" height="324" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFECAIAAACGcv+iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ 
    bWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp 
    5kJj2am9CGtYTDfOXIL81TzGme8Nc1GyHoMINW8faYbMEGfdIx918P8KMABYSjb4P5vsjAAAAABJ 
    RU5ErkJggg==" transform="matrix(1 0 0 1 60 34)"> 
    </image> 
    <text><tspan x="0" y="0">text</tspan></text> 
</svg> 

Примечание: это не все данные изображения. Я урезал большую часть этого.

Вот тот же файл экспортируется в FXG из Illustrator:

<Graphic version="2.0" viewHeight="792" viewWidth="612" ai:appVersion="15.1.0.39" ATE:version="1.0.0" flm:version="1.0.0" d:using="" xmlns="http://ns.adobe.com/fxg/2008" xmlns:ATE="http://ns.adobe.com/ate/2009" xmlns:ai="http://ns.adobe.com/ai/2009" xmlns:d="http://ns.adobe.com/fxg/2008/dt" xmlns:flm="http://ns.adobe.com/flame/2008"> 
    <Library/> 
    <Group ai:seqID="1" d:layerType="page" d:pageHeight="792" d:pageWidth="612" d:type="layer" d:userLabel="Artboard 1"> 
    <Group ai:seqID="2" d:type="layer" d:userLabel="Layer 1"> 
     <BitmapImage x="60" y="34" scaleX="1.4" source="@Embed('/images/myimage.png')" fillMode="clip" ai:seqID="3"/> 
     <RichText x="53" y="28.9253" fontFamily="Andale Mono"> 
     <content><p><span>text</span></p></content> 
     </RichText> 
    </Group> 
    </Group> 
    <Private> 
    <d:FontMap> 
     <d:Map fontFamily="Andale Mono" fontStyle="normal" fontWeight="normal" postScriptName="AndaleMono"/> 
    </d:FontMap> 
    </Private> 
</Graphic> 

В этом случае файл не встроен. Однако директива компилятора для ее внедрения. Если отправить этот файл FXG кому-то, ему также понадобится изображение. Таким образом, он не встроен.

ответ

1

Похоже, что не было официального способа встраивания данных изображения. Существует директива, которая указывает на местоположение файла, но это не то же самое:

<BitmapImage source="@Embed('location/of/file.png')" /> 

Но я понял, что это приложение, которое считывает файл, который определяет, что он делает с предоставленной информации.

Я имею в виду, что я могу кодировать изображение так же, как оно закодировано в SVG и записывать эти данные в XML-формате FXG. Это приложение должно использовать эти данные.

Например, я мог бы добавить тег BitmapData в библиотеку тегов и сохранить данные изображения есть:

<Graphic> 
    <Library> 
    <BitmapData id="myimage" data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFECAIAAACGcv+iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ 
    bWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp 
    5kJj2am9CGtYTDfOXIL81TzGme8Nc1GyHoMINW8faYbMEGfdIx918P8KMABYSjb4P5vsjAAAAABJ 
    RU5ErkJggg=="> 
    </BitmapData> 
    </Library> 
    <Group> 
     <BitmapImage x="60" y="34" scaleX="1.4" source="{myimage}" fillMode="clip" ai:seqID="3"/> 
    </Group> 
</Graphic> 

Было бы до приложения, чтобы использовать его. Поскольку я не видел упоминания встроенных данных в спецификации FXG, я не знаю, как хорошо это пройдет.