/// <summary> /// Reads the text information for the layer. /// </summary> /// <param name="dataReader">The reader to use to read the text data.</param> private void ReadTextLayer(BinaryReverseReader dataReader) { IsTextLayer = true; // read the text layer's text string dataReader.Seek("/Text"); dataReader.ReadBytes(4); Text = dataReader.ReadString(); // read the text justification dataReader.Seek("/Justification "); int justification = dataReader.ReadByte() - 48; Justification = TextJustification.Left; if (justification == 1) { Justification = TextJustification.Right; } else if (justification == 2) { Justification = TextJustification.Center; } // read the font size dataReader.Seek("/FontSize "); FontSize = dataReader.ReadFloat(); // read the font fill color dataReader.Seek("/FillColor"); dataReader.Seek("/Values [ "); float alpha = dataReader.ReadFloat(); dataReader.ReadByte(); float red = dataReader.ReadFloat(); dataReader.ReadByte(); float green = dataReader.ReadFloat(); dataReader.ReadByte(); float blue = dataReader.ReadFloat(); FillColor = new Color(red * byte.MaxValue, green * byte.MaxValue, blue * byte.MaxValue, alpha * byte.MaxValue); // read the font name dataReader.Seek("/FontSet "); dataReader.Seek("/Name"); dataReader.ReadBytes(4); FontName = dataReader.ReadString(); // read the warp style dataReader.Seek("warpStyle"); dataReader.Seek("warpStyle"); dataReader.ReadBytes(3); int num13 = dataReader.ReadByte(); WarpStyle = string.Empty; for (; num13 > 0; --num13) { string str = WarpStyle + dataReader.ReadChar(); WarpStyle = str; } }
private void ReadTextLayer(BinaryReverseReader dataReader) { //文档 五 - 4 - 22) -d - 15 IsTextLayer = true; dataReader.Seek("/Text"); byte[] temp = dataReader.ReadBytes(4); Text = dataReader.ReadString();// ( true); dataReader.Seek("/Justification"); int justification = dataReader.ReadByte();// - 48; Justification = TextJustification.Left; if (justification == 1) { Justification = TextJustification.Right; } else if (justification == 2) { Justification = TextJustification.Center; } dataReader.Seek("/FontSize "); FontSize = dataReader.ReadFloat(); // read the font fill color dataReader.Seek("/FillColor"); dataReader.Seek("/Values [ "); float alpha = dataReader.ReadFloat(); dataReader.ReadByte(); float red = dataReader.ReadFloat(); dataReader.ReadByte(); float green = dataReader.ReadFloat(); dataReader.ReadByte(); float blue = dataReader.ReadFloat(); FillColor = new Color(red, green, blue, alpha); // read the font name dataReader.Seek("/FontSet "); dataReader.Seek("/Name"); FontName = dataReader.ReadString(); // read the warp style dataReader.Seek("warpStyle"); dataReader.Seek("warpStyle"); byte[] wrapBytes = dataReader.ReadBytes(3); int num13 = dataReader.ReadByte(); WarpStyle = string.Empty; for (; num13 > 0; --num13) { string str = WarpStyle + dataReader.ReadChar(); WarpStyle = str; } }
/// <summary> /// Reads the text information for the layer. /// </summary> /// <param name="dataReader">The reader to use to read the text data.</param> private void ReadTextLayer(BinaryReverseReader dataReader) { IsTextLayer = true; // read the text layer's text string dataReader.Seek("/Text"); byte[] temp = dataReader.ReadBytes(4); //注意:解析的起点是对的,但是终点不对 //Debug.Log("text layer temp[0]=" + temp[0] + ",temp[1]=" + temp[1] + ",temp[2]=" + temp[2]+",temp[3]=" + temp[3]); Text = dataReader.ReadString(); // ( true); // read the text justification dataReader.Seek("/Justification"); int justification = dataReader.ReadByte();// - 48; Justification = TextJustification.Left; if (justification == 1) { Justification = TextJustification.Right; } else if (justification == 2) { Justification = TextJustification.Center; } //Debug.Log("text layer justification=" + justification); // read the font size dataReader.Seek("/FontSize "); FontSize = dataReader.ReadFloat(); //Debug.Log("text layer FontSize=" + FontSize); // read the font fill color dataReader.Seek("/FillColor"); dataReader.Seek("/Values [ "); float alpha = dataReader.ReadFloat(); dataReader.ReadByte(); float red = dataReader.ReadFloat(); dataReader.ReadByte(); float green = dataReader.ReadFloat(); dataReader.ReadByte(); float blue = dataReader.ReadFloat(); FillColor = new Color(red, green, blue, alpha); //Debug.Log("text text="+ Text + ",red=" + red + ",green=" + green + ",blue=" + blue+ ",alpha="+ alpha+",position="+dataReader.BaseStream.Position+ ", byte.MaxValue=" + byte.MaxValue); // read the font name dataReader.Seek("/FontSet "); dataReader.Seek("/Name"); FontName = dataReader.ReadString(); //Debug.Log("text layer FontName=" + FontName); // read the warp style dataReader.Seek("warpStyle"); dataReader.Seek("warpStyle"); byte [] wrapBytes = dataReader.ReadBytes(3); int num13 = dataReader.ReadByte(); WarpStyle = string.Empty; for (; num13 > 0; --num13) { string str = WarpStyle + dataReader.ReadChar(); WarpStyle = str; } }