2015-07-12 56 views
0

我需要能夠創建一個帶有單個文本字段的文本字段的Illustrator文件,有時候,如果可能的話,還要創建一個圖像。是否可以在FXG文件中嵌入圖像?

它看起來像AI文件是二進制文件,我不知道該怎麼寫。我可以更輕鬆地編寫一個文本文件,它看起來像FXG或SVG是Illustrator可以導入的一種可接受的文件格式。

是否可以在FXG中嵌入圖像?

UPDATE
由於什麼,我這裏尋找一個例子是從Illustrator導出到SVG與嵌入的圖像數據的文件:

<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> 

注:不是所有的圖像數據。我已經把大部分內容剪掉了。

下面是從Illustrator導出到FXG同一個文件:

<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的相同方式對圖像進行編碼,然後在FXG XML中寫入數據。應用程序可以使用這些數據。

例如,我可以一個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規範中看到有關嵌入式數據的任何提及,所以我不知道它會如何過關。