Exemplo n.º 1
0
        private void ImportButton_Click(object sender, EventArgs e)
        {
            if (this.SearchChar.Text.Length <= 0)
            {
                return;
            }
            Color  bgcolor     = GetFontColor(this.FontType.SelectedIndex == 0);
            Bitmap paletteHint = ImageUtil.ByteToImage4(16, 16, new byte[64], 0, bgcolor);
            Bitmap bitmap      = ImageUtil.LoadAndCheckPaletteUI(this
                                                                 , paletteHint
                                                                 , 2 * 8, 2 * 8);

            if (bitmap == null)
            {
                return;
            }

            //画像
            this.SelectFontBitmapByte = ImageUtil.Image4ToByte(bitmap);
            U.ForceUpdate(this.FontWidth, 9);

            //画像等データの書き込み
            WriteButton.PerformClick();
            //即検索
            SearchButton.PerformClick();
        }
Exemplo n.º 2
0
        StringBuilder ExportALL(InputFormRef.AutoPleaseWait pleaseWait, string basedir, bool isItemFont)
        {
            List <Address> list = new List <Address>();

            MakeAllDataLengthInner(isItemFont, ref list);
            PatchUtil.PRIORITY_CODE priorityCode = PatchUtil.SearchPriorityCode();
            Color         bgcolor = GetFontColor(isItemFont);
            StringBuilder sb      = new StringBuilder();

            foreach (Address a in list)
            {
                if (a.DataType != FEBuilderGBA.Address.DataTypeEnum.FONT)
                {
                    continue;
                }
                if (a.Addr <= Program.ROM.RomInfo.font_default_end())
                {//規定のフォント
                    continue;
                }

                int    out_width;
                byte[] fontbyte = ReadFontData(a.Addr, out out_width);
                Bitmap bitmap   = ImageUtil.ByteToImage4(16, 16, fontbyte, 0, bgcolor);
                ImageUtil.BlackOutUnnecessaryColors(bitmap, 1);
                string font_filename = Path.Combine(basedir, a.Info + ".png");
                U.BitmapSave(bitmap, font_filename);
                bitmap.Dispose();

                sb.AppendLine(a.Info + ".png");
            }

            return(sb);
        }
Exemplo n.º 3
0
        //フォントの描画
        void DrawFonts()
        {
            if (SearchChar.Text.Length <= 0)
            {
                return;
            }

            Bitmap fontSampleBitmap;

            uint  fontlist_pointer = GetFontPointer(this.FontType.SelectedIndex == 0);
            Color bgcolor          = GetFontColor(this.FontType.SelectedIndex == 0);

            fontSampleBitmap = ImageUtil.Blank(FontPictureBox.Width, FontPictureBox.Height);

            PatchUtil.PRIORITY_CODE priorityCode = PatchUtil.SearchPriorityCode();

            int drawwidth = 0;

            for (int i = 0; i < this.FontSample.Text.Length; i++)
            {
                uint search_char;
                if (this.FontSample.Text[i] == '@')
                {
                    search_char = U.ConvertMojiCharToUnitFast(this.SearchChar.Text, priorityCode);
                }
                else
                {
                    search_char = U.ConvertMojiCharToUnitFast(this.FontSample.Text.Substring(i, 1), priorityCode);
                }
                uint fontaddr = FindFontData(fontlist_pointer, search_char, priorityCode);
                if (fontaddr == U.NOT_FOUND)
                {
                    continue;
                }
                int    width;
                byte[] fontbyte;
                if (this.FontSample.Text[i] == '@')
                {
                    width    = (int)this.FontWidth.Value;
                    fontbyte = this.SelectFontBitmapByte;
                }
                else
                {
                    fontbyte = ReadFontData(fontaddr, out width);
                }

                if (width <= 0 || fontbyte == null)
                {
                    continue;
                }
                Bitmap bitmap = ImageUtil.ByteToImage4(16, 16, fontbyte, 0, bgcolor);

                fontSampleBitmap.Palette = bitmap.Palette;
                ImageUtil.BitBlt(fontSampleBitmap, drawwidth, 0, width, 16, bitmap, 0, 0);
                drawwidth += width;
            }
            FontPictureBox.Image = U.Zoom(fontSampleBitmap, ZoomComboBox.SelectedIndex);
        }
Exemplo n.º 4
0
        public static Bitmap DrawFont(uint search_char, bool IsItemFont, out int out_width, PatchUtil.PRIORITY_CODE priorityCode)
        {
            uint  fontlist_pointer = GetFontPointer(IsItemFont);
            Color bgcolor          = GetFontColor(IsItemFont);

            uint fontaddr = FindFontData(fontlist_pointer, search_char, priorityCode);

            if (fontaddr == U.NOT_FOUND)
            {
                out_width = 0;
                return(null);
            }

            byte[] fontbyte = ReadFontData(fontaddr, out out_width);
            Bitmap bitmap   = ImageUtil.ByteToImage4(16, 16, fontbyte, 0, bgcolor);

            return(bitmap);
        }