public void make(ref PageArrayBin pageArrayBin, ref SVSerialize serialize) { UInt32 pageCount = pageArrayBin.pageCount; UInt32 curveCount = pageArrayBin.pageArray[pageCount].iconNum++; if (pageArrayBin.pageArray[pageCount].m_icon == null) { pageArrayBin.pageArray[pageCount].m_icon = new IconBin[SVLimit.PAGE_ICON_MAXNUM]; } IconBin iconBin = pageArrayBin.pageArray[pageCount].m_icon[curveCount]; iconBin.id = ID; iconBin.rect.sX = (UInt16)Rect.X; iconBin.rect.sY = (UInt16)Rect.Y; iconBin.rect.eX = (UInt16)(Rect.Width + iconBin.rect.sX - 1); iconBin.rect.eY = (UInt16)(Rect.Height + iconBin.rect.sY - 1); var address = PicIconData.bitmap8Data(Rect.Width, Rect.Height); if (address != null) { //图标位置 iconBin.imageOffset = (UInt32)serialize.ToArray().Length; serialize.pack(address); } pageArrayBin.pageArray[pageCount].m_icon[curveCount] = iconBin; }
/// <summary> /// 解析静态图数据并显示 /// </summary> /// <param Name="bin">静态图结构</param> /// <param Name="picBuffer">图片数据</param> public void fromBin(IconBin bin, byte[] picBuffer) { ///设置位置和尺寸 this.Location = new Point(bin.rect.sX, bin.rect.sY); this.Width = bin.rect.eX - bin.rect.sX; this.Height = bin.rect.eY - bin.rect.sY; ///设置图片 SVPixmapFile file = new SVPixmapFile(); this.BackgroundImage = file.getFromFile(picBuffer, bin.imageOffset); }