michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #include "SkSVGImage.h" michael@0: #include "SkSVGParser.h" michael@0: michael@0: const SkSVGAttribute SkSVGImage::gAttributes[] = { michael@0: SVG_ATTRIBUTE(height), michael@0: SVG_ATTRIBUTE(width), michael@0: SVG_ATTRIBUTE(x), michael@0: SVG_LITERAL_ATTRIBUTE(xlink:href, f_xlink_href), michael@0: SVG_ATTRIBUTE(y) michael@0: }; michael@0: michael@0: DEFINE_SVG_INFO(Image) michael@0: michael@0: void SkSVGImage::translate(SkSVGParser& parser, bool defState) { michael@0: parser._startElement("image"); michael@0: INHERITED::translate(parser, defState); michael@0: SVG_ADD_ATTRIBUTE(x); michael@0: SVG_ADD_ATTRIBUTE(y); michael@0: // SVG_ADD_ATTRIBUTE(width); michael@0: // SVG_ADD_ATTRIBUTE(height); michael@0: translateImage(parser); michael@0: parser._endElement(); michael@0: } michael@0: michael@0: void SkSVGImage::translateImage(SkSVGParser& parser) { michael@0: SkASSERT(f_xlink_href.size() > 0); michael@0: const char* data = f_xlink_href.c_str(); michael@0: SkASSERT(strncmp(data, "data:image/", 11) == 0); michael@0: data += 11; michael@0: SkASSERT(strncmp(data, "png;", 4) == 0 || strncmp(data, "jpeg;", 5) == 0); michael@0: data = strchr(data, ';'); michael@0: SkASSERT(strncmp(data, ";base64,", 8) == 0); michael@0: data += 8; michael@0: parser._addAttribute("base64", data); michael@0: }