text: ﻿/**
  *
  * @license MIT
  *
  * @copyright: 2022 LinJi
  *
  * @technical support: www.svgsvg.cn
  *
  * @email: 93681992@qq.com
  *
  * @module: QtSVGEditor
  *
  * 版权申明:
  *
  * 本源码开源基于MIT协议。
  *
  * 该软件及其相关文档对所有人免费，可以任意处置，包括使用，复制，修改，合并，发表，分发，再授权，或者销售。
  *
  * 唯一的限制是需要保留我们的许可申明。
  *
  */
  #pragma once
  #include "SVGElementShape.h"
  #include <QImage>
  class CSVGElementImage : public CSVGElementShape
  {
  	friend class CSVGElementShape;
  public:
  	CSVGElementImage(CSVGDocument* ownerDoc);
  	~CSVGElementImage();
  	virtual void  setAttribute(const std::wstring& attrname, const std::wstring& value, bool bSetModfiyFlag = true);
  	virtual void  resetpatternPath(int nNewWidth, int nNewHeight);
  	virtual bool  IsPtInShape(float fx, int fy, std::wstring &retgroupid, std::wstring &retshapeid);
  	virtual void  SizeTo(int nptIndex, int nx, int ny, const CSVGMatrix *screenmat);
  	virtual void  resetPath();
  	virtual std::set<std::wstring> getAttrNames();
  	static  QImage LoadFromBase64(const std::wstring &strdata);
  private:
  	bool          addorsetAttribute(const std::wstring& attrname, const std::wstring& value, bool bSetModfiyFlag);
  	virtual void  calBBox();
  	bool          IsEmbedImage();
  	std::wstring  GetEmbedImageData();
  
  	float         x;
  	float         y;
  	float         width;
  	float         height;
  	std::wstring  xlinkhref;
  	QImage        m_Image;
  };
  