Example #1
0
        public bool LoadData(sCustFontData custFontData)
        {
            RangeData rangeData = custFontData.pRangeDetails.pRangeData;

            byte[]   WidthArray   = custFontData.pWidthArray;
            byte[]   DWidthArray  = custFontData.pDWidthArray;
            UInt32[] OffsetArray  = custFontData.pOffsetArray;
            UInt16[] OffsetArrayC = custFontData.pOffsetArrayC;
            byte[]   DataArray    = custFontData.pDataArray;
            int      index        = 0;

            m_width  = custFontData.nWidth;
            m_height = custFontData.nHeight;

            if (DWidthArray == null)
            {
                DWidthArray = WidthArray;
            }
            if (custFontData.nEquiDistant == 0)
            {
                m_header = "STARTFONT 2.1\r\n" +
                           "FONTBOUNDINGBOX " + custFontData.nWidth + " " + custFontData.nHeight + " " + "0" + " " + "0" + "\r\n" +
                           "STARTPROPERTIES " + "2" + "\r\n" +
                           "FONT_ASCENT " + custFontData.nAscent + "\r\n" +
                           "FONT_DESCENT " + custFontData.nDescent + "\r\n" +
                           "ENDPROPERTIES" + "\r\n";   // +
                //"CHARS " + m_rangeData.m_chars + "\r\n";

                for (int i = 0; i < rangeData.m_rangeData.Length; i++)
                {
                    for (UInt16 j = rangeData.m_rangeData[i].nMin; j < rangeData.m_rangeData[i].nMax + 1; j++)
                    {
                        if (custFontData.nEquiDistant == 0)
                        {
                            FontBitmap fbmp = new FontBitmap(j, WidthArray[index], DWidthArray[index], custFontData.nHeight, index, DataArray, (UInt32)(OffsetArrayC[index]));
                            m_FontArray[fbmp.m_ch] = fbmp;
                        }
                        else
                        {
                            FontBitmap fbmp = new FontBitmap(j, custFontData.nWidth, custFontData.nWidth, custFontData.nHeight, index, DataArray, (UInt32)index * custFontData.nCharBytes);
                            m_FontArray[fbmp.m_ch] = fbmp;
                        }
                        index++;
                    }
                }
                return(true);
            }
            return(false);
            //temp += "ENDFONT" + "\r\n";
        }
Example #2
0
        int resource_get_fontres(byte[] bin)
        {
            UInt32 index;
            int    i;
            UInt32 rom_base = 0;
            UInt32 rom_size = (UInt32)m_bin.Length;
            int    offset;

            //resource_get_langpack2ndJumpTbl();

            for (index = 0; index < rom_size - 50; index += 4)
            {
                sCustFontData tmp = new sCustFontData();
                offset = (int)index;
                if (tmp.CheckData(g_regionInfo, offset))
                {
                    //new sCustFontData(g_regionInfo, ref offset);
                    offset = (int)index;
                    BdfClass bdf = new BdfClass();
                    try{
                        if (bdf.LoadData(new sCustFontData(g_regionInfo, ref offset)))
                        {
                            bdf.SaveFile(m_directory + "\\cust" + index + ".bdf");
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
                else
                {
                    continue;
                }
            }
            return(0);
        }
Example #3
0
        public bool LoadData(string CustFontData, string RangeDataS, string Width, string DWidth, string Offset, string Data)
        {
            sCustFontData custFontData;
            RangeData     rangeData;
            ByteData      s_data;
            ByteData      width;
            ByteData      dWidth;
            UInt32Data    s_offset;
            int           index = 0;

            custFontData = new sCustFontData(CustFontData);
            rangeData    = new RangeData(RangeDataS);
            m_width      = custFontData.nWidth;
            m_height     = custFontData.nHeight;

            if (custFontData.nEquiDistant == 0)
            {
                if (Width == null || Width.Length <= 0)
                {
                    MessageBox.Show("Width can not be empty!");
                    return(false);
                }
                width = new ByteData(Width);
                if (DWidth != null && DWidth.Length > 0)
                {
                    dWidth = new ByteData(DWidth);
                }
                else
                {
                    dWidth = width;
                }
                if (dWidth.m_data.Length != width.m_data.Length)
                {
                    MessageBox.Show("Number of different Width & Dwidth!");
                    return(false);
                }
                s_offset = new UInt32Data(Offset);
                s_data   = new ByteData(Data);

                m_header = "STARTFONT 2.1\r\n" +
                           "FONTBOUNDINGBOX " + custFontData.nWidth + " " + custFontData.nHeight + " " + "0" + " " + "0" + "\r\n" +
                           "STARTPROPERTIES " + "2" + "\r\n" +
                           "FONT_ASCENT " + custFontData.nAscent + "\r\n" +
                           "FONT_DESCENT " + custFontData.nDescent + "\r\n" +
                           "ENDPROPERTIES" + "\r\n";   // +
                //"CHARS " + m_rangeData.m_chars + "\r\n";

                for (int i = 0; i < rangeData.m_rangeData.Length; i++)
                {
                    for (UInt16 j = rangeData.m_rangeData[i].nMin; j < rangeData.m_rangeData[i].nMax + 1; j++)
                    {
                        FontBitmap fbmp = new FontBitmap(j, width.m_data[index], dWidth.m_data[index], custFontData.nHeight, index, s_data.m_data, s_offset.m_data[index]);
                        m_FontArray[fbmp.m_ch] = fbmp;
                        index++;
                    }
                }
                return(true);
            }
            else
            {
                s_offset = new UInt32Data(Offset);
                s_data   = new ByteData(Data);

                m_header = "STARTFONT 2.1\r\n" +
                           "FONTBOUNDINGBOX " + custFontData.nWidth + " " + custFontData.nHeight + " " + "0" + " " + "0" + "\r\n" +
                           "STARTPROPERTIES " + "2" + "\r\n" +
                           "FONT_ASCENT " + custFontData.nAscent + "\r\n" +
                           "FONT_DESCENT " + custFontData.nDescent + "\r\n" +
                           "ENDPROPERTIES" + "\r\n";   // +
                //"CHARS " + m_rangeData.m_chars + "\r\n";

                for (int i = 0; i < rangeData.m_rangeData.Length; i++)
                {
                    for (UInt16 j = rangeData.m_rangeData[i].nMin; j < rangeData.m_rangeData[i].nMax + 1; j++)
                    {
                        FontBitmap fbmp = new FontBitmap(j, custFontData.nWidth, custFontData.nWidth, custFontData.nHeight, index, s_data.m_data, (uint)(s_offset.m_data[i] + (j - rangeData.m_rangeData[i].nMin) * ((custFontData.nWidth * custFontData.nHeight + 7) / 8)));
                        m_FontArray[fbmp.m_ch] = fbmp;
                        index++;
                    }
                }
                return(true);
            }
            return(false);
            //temp += "ENDFONT" + "\r\n";
        }