Home | History | Annotate | Download | only in parser
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #include "SkSVGImage.h"
     11 #include "SkSVGParser.h"
     12 
     13 const SkSVGAttribute SkSVGImage::gAttributes[] = {
     14     SVG_ATTRIBUTE(height),
     15     SVG_ATTRIBUTE(width),
     16     SVG_ATTRIBUTE(x),
     17     SVG_LITERAL_ATTRIBUTE(xlink:href, f_xlink_href),
     18     SVG_ATTRIBUTE(y)
     19 };
     20 
     21 DEFINE_SVG_INFO(Image)
     22 
     23 void SkSVGImage::translate(SkSVGParser& parser, bool defState) {
     24     parser._startElement("image");
     25     INHERITED::translate(parser, defState);
     26     SVG_ADD_ATTRIBUTE(x);
     27     SVG_ADD_ATTRIBUTE(y);
     28 //  SVG_ADD_ATTRIBUTE(width);
     29 //  SVG_ADD_ATTRIBUTE(height);
     30     translateImage(parser);
     31     parser._endElement();
     32 }
     33 
     34 void SkSVGImage::translateImage(SkSVGParser& parser) {
     35     SkASSERT(f_xlink_href.size() > 0);
     36     const char* data = f_xlink_href.c_str();
     37     SkASSERT(strncmp(data, "data:image/", 11) == 0);
     38     data += 11;
     39     SkASSERT(strncmp(data, "png;", 4) == 0 || strncmp(data, "jpeg;", 5) == 0);
     40     data = strchr(data, ';');
     41     SkASSERT(strncmp(data, ";base64,", 8) == 0);
     42     data += 8;
     43     parser._addAttribute("base64", data);
     44 }
     45