public static void SaveAPImages(string filename, uint image_addr, uint ap_addr, int x, int y) { image_addr = U.toOffset(image_addr); Bitmap parts = DrawBorderBitmap(image_addr); ap_addr = U.toOffset(ap_addr); ImageUtilAP ap = new ImageUtilAP(); bool r = ap.Parse(ap_addr); if (!r) { return; } Bitmap borderimg = ImageUtil.Blank(256, 160, parts); ap.DrawFrame(borderimg, 0, x, y, parts); string export_filename = ImageFormRef.ExportImage(null, borderimg, filename); string name_filename = MakeBorderNameImageFileName(export_filename); borderimg = ImageUtil.Blank(256, 160, parts); ap.DrawFrame(borderimg, 1, x, y, parts); ImageUtil.BlackOutUnnecessaryColors(borderimg, 1); borderimg.Save(name_filename); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawBG((uint)this.AddressList.SelectedIndex + 1); int palette_count = ImageUtil.GetPalette16Count(bitmap); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(), palette_count); }
private void ExportButton_Click(object sender, EventArgs e) { if (this.DrawBitmap == null) { return; } ImageFormRef.ExportImage(this, this.DrawBitmap, InputFormRef.MakeSaveImageFilename(), 1); }
private void ExportButton_Click(object sender, EventArgs e) { if (this.DrawBitmap == null) { return; } ImageFormRef.ExportImage(this , this.DrawBitmap , InputFormRef.MakeSaveImageFilename(this, U.ToHexString(this.PALETTE_ADDRESS.Value)) , this.MaxPaletteCount); }
private void ExportButton_Click(object sender, EventArgs e) { if (this.DrawBimap == null) { return; } ImageFormRef.ExportImage(this , this.DrawBimap , InputFormRef.MakeSaveImageFilename(this, U.ToHexString((uint)Image.Value)) , (int)U.atoi(this.USE_PALETTE_NUMBER.Text) ); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawImageByID((uint)this.AddressList.SelectedIndex); uint typeFlag = (uint)B0.Value; if (typeFlag == 0x00) {//単体 ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(), 8); } else {//10分割 ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(), 8); } }
//顔シートの出力 private void ExportButton_Click(object sender, EventArgs e) { uint unit_face = (uint)this.D0.Value; if (unit_face != 0) { Bitmap seetbitmap = DrawPortraitSeetFE6((uint)this.AddressList.SelectedIndex); ImageFormRef.ExportImage(this, seetbitmap, InputFormRef.MakeSaveImageFilename()); } else { Bitmap classbitmap = ImagePortraitForm.DrawPortraitClass((uint)this.AddressList.SelectedIndex); ImageFormRef.ExportImage(this, classbitmap, InputFormRef.MakeSaveImageFilename()); } }
private void AutoGenbutton_Click(object sender, EventArgs e) {//フォントの自動生成. string mojiText = SearchChar.Text; mojiText = mojiText.Trim(); if (mojiText.Length <= 0) { return; } bool isItemFont = this.FontType.SelectedIndex == 0; bool isSquareFont = true; int font_width; Bitmap autogen = ImageUtil.AutoGenerateFont(mojiText, UseFontNameTextEdit.Font, isItemFont, isSquareFont, out font_width); if (autogen == null) { R.ShowStopError("フォントの自動生成に失敗しました。対応する日本語フォントがありません。"); return; } DialogResult dr = R.ShowQ("フォントを自動生成しました。\r\nROMに書き込みますか?\r\n\r\n「はい」ならば、ROMに書き込みます。\r\n「いいえ」ならば、画像ファイルとして保存します。\r\n"); if (dr == System.Windows.Forms.DialogResult.Yes) { //画像 this.SelectFontBitmapByte = ImageUtil.Image4ToByteZH(autogen, font_width); U.ForceUpdate(this.FontWidth, font_width); //画像等データの書き込み WriteButton.PerformClick(); //即検索 SearchButton.PerformClick(); } else if (dr == System.Windows.Forms.DialogResult.No) { if (this.FontType.SelectedIndex == 0) { //アイテム ImageFormRef.ExportImage(this, autogen, InputFormRef.MakeSaveImageFilename(this, "Item_" + mojiText), font_width); } else { //セリフ ImageFormRef.ExportImage(this, autogen, InputFormRef.MakeSaveImageFilename(this, "Serif_" + mojiText), font_width); } } }
private void ObjExportButton_Click(object sender, EventArgs e) { uint palIndex = CalcPatelleIndex(); if (palIndex == 0 || palIndex == U.NOT_FOUND) {//パレットは正しい順場 Bitmap newbitmap = this.MapObjImage; ImageFormRef.ExportImage(this, newbitmap, InputFormRef.MakeSaveImageFilename(this, MapStyle), MAX_MAP_PALETTE_COUNT); } else {//現在選択しているパレット Bitmap newbitmap = ImageUtil.SwapPalette(this.MapObjImage, (int)palIndex); string name = MapStyle.Text + "_swap_" + palIndex; ImageFormRef.ExportImage(this, newbitmap, InputFormRef.MakeSaveImageFilename(this, name), MAX_MAP_PALETTE_COUNT); } }
private void ExportButton_Click(object sender, EventArgs e) { uint addr = InputFormRef.SelectToAddr(this.AddressList); if (addr == U.NOT_FOUND) { return; } uint img = Program.ROM.u32(addr); uint pal = Program.ROM.u32(addr + (8 * 4)); Bitmap bitmap = Draw(img, pal); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename()); }
private void ExportButton_Click(object sender, EventArgs e) { if (this.SearchChar.Text.Length <= 0) { return; } PatchUtil.PRIORITY_CODE priorityCode = PatchUtil.SearchPriorityCode(); if (this.FontType.SelectedIndex == 0) { //アイテム Bitmap bitmap = FontForm.DrawFont(this.SearchChar.Text, true, priorityCode); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "Item_" + this.SearchChar.Text), 8); } else { //セリフ Bitmap bitmap = FontForm.DrawFont(this.SearchChar.Text, false, priorityCode); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "Serif_" + this.SearchChar.Text), 8); } }
private void ExportButton_Click(object sender, EventArgs e) { if (this.SearchChar.Text.Length <= 0) { return; } int width; if (this.FontType.SelectedIndex == 0) { //アイテム Bitmap bitmap = FontZHForm.DrawFont(this.SearchChar.Text, true, out width); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "Item_" + this.SearchChar.Text), 8); } else { //セリフ Bitmap bitmap = FontZHForm.DrawFont(this.SearchChar.Text, false, out width); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "Serif_" + this.SearchChar.Text), 8); } }
private void unit_icon_sepia_Export_Click(object sender, EventArgs e) { Bitmap bitmap = DrawUnits(6); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "unit_icon_sepia")); }
private void icon_palette_Export_Click(object sender, EventArgs e) { Bitmap bitmap = DrawItemIcons(); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "item_icon")); }
private void ExportButton_Click(object sender, EventArgs e) { MakeBattleScreen(); //TSA描画 ImageFormRef.ExportImage(this, this.DrawBitmap, InputFormRef.MakeSaveImageFilename(this, R._("戦闘画面")), 4); }
private void ExportButton3_Click(object sender, EventArgs e) { Bitmap bitmap = DrawPic((uint)P8.Value, 8 * 18); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename()); }
private void PaletteExportButton_Click(object sender, EventArgs e) { Bitmap newbitmap = this.MapObjImage; ImageFormRef.ExportImage(this, newbitmap, InputFormRef.MakeSaveImageFilename(this, MapStyle), MAX_MAP_PALETTE_COUNT); }
private void DataDumpButton_Click(object sender, EventArgs e) { if (this.DrawBimap == null) { return; } string savefilename = ImageFormRef.ExportImage(this , this.DrawBimap , InputFormRef.MakeSaveImageFilename(this, U.ToHexString((uint)Image.Value)) , (int)U.atoi(this.USE_PALETTE_NUMBER.Text) ); if (savefilename == "") { return; } if (ImageOption.SelectedIndex == 0 || ImageOption.SelectedIndex == 3) {//圧縮画像 byte[] image = LZ77.GetCompressDataLow(Program.ROM.Data , U.toOffset(Image.Value)); if (image.Length > 0) { U.WriteAllBytes(savefilename + ".dmp", image); } } else if (ImageOption.SelectedIndex == 2) {//第2圧縮画像 byte[] image = LZ77.GetCompressDataLow(Program.ROM.Data , U.toOffset(Image.Value)); if (image.Length > 0) { U.WriteAllBytes(savefilename + ".dmp", image); } byte[] image2 = LZ77.GetCompressDataLow(Program.ROM.Data , U.toOffset(Image2.Value)); if (image.Length > 0) { U.WriteAllBytes(savefilename + ".img2.dmp", image2); } } else {//無圧縮画像 uint image_size = ((uint)PicWidth.Value * 8 / 2) * ((uint)PicHeight.Value * 8); byte[] image = U.getBinaryData(Program.ROM.Data, U.toOffset(Image.Value), image_size); U.WriteAllBytes(savefilename + ".dmp", image); } if (PaletteOption.SelectedIndex == 1) {//lz77 palette byte[] palette = LZ77.GetCompressDataLow(Program.ROM.Data , U.toOffset(PALETTE.Value)); if (palette.Length > 0) { U.WriteAllBytes(savefilename + ".pal.dmp", palette); } } else {//通常のパレット uint palette_addr = ToPaletteOffset((uint)PALETTE.Value, (uint)PALETTENO.Value); uint palette_count = U.atoi(this.USE_PALETTE_NUMBER.Text); if (palette_count < 0) {//パレットがないのはありえないので. palette_count = 1; } if (ImageOption.SelectedIndex == 3) {//256色 palette_count = 16; } byte[] palette = Program.ROM.getBinaryData(palette_addr, 0x20 * palette_count); U.WriteAllBytes(savefilename + ".pal.dmp", palette); } if (TSAOption.SelectedIndex == 0) {//TSAを利用しない } else if (TSAOption.SelectedIndex == 1 || TSAOption.SelectedIndex == 2) {//圧縮TSAを利用する , or 圧縮ヘッダ付きTSAを利用する byte[] tsa = LZ77.GetCompressDataLow(Program.ROM.Data , U.toOffset(TSA.Value)); if (tsa.Length > 0) { U.WriteAllBytes(savefilename + ".tsa.dmp", tsa); } } else if (TSAOption.SelectedIndex == 3) {//無圧縮ヘッダ付きTSAを利用する uint tsa_addr = U.toOffset(TSA.Value); uint tsa_size = ImageUtil.CalcByteLengthForHeaderTSAData(Program.ROM.Data, (int)tsa_addr); if (tsa_size > 0) { byte[] tsa = Program.ROM.getBinaryData(tsa_addr, tsa_size); U.WriteAllBytes(savefilename + ".tsa.dmp", tsa); } } else if (TSAOption.SelectedIndex == 4) {//無圧縮TSAを利用する uint width = (uint)PicWidth.Value * 8; uint height = (uint)PicHeight.Value * 8; uint tsa_addr = U.toOffset(TSA.Value); uint tsa_size = width * height / 32; if (tsa_size > 0) { byte[] tsa = Program.ROM.getBinaryData(tsa_addr, tsa_size); U.WriteAllBytes(savefilename + ".tsa.dmp", tsa); } } else if (TSAOption.SelectedIndex == 5) {//パレットマップとして解釈する uint width = (uint)PicWidth.Value * 8; uint height = (uint)PicHeight.Value * 8; uint tsa_addr = U.toOffset(TSA.Value); uint tsa_size = width * height / 2; if (tsa_size > 0) { byte[] tsa = Program.ROM.getBinaryData(tsa_addr, tsa_size); U.WriteAllBytes(savefilename + ".tsa.dmp", tsa); } } }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = Draw((uint)D12.Value, (uint)D16.Value); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename()); }
private void BORDER_ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawBorderBitmap((uint)BORDER_P0.Value); ImageFormRef.ExportImage(this, bitmap, Border_InputFormRef.MakeSaveImageFilename()); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawTSAAnime((uint)P0.Value, (uint)P4.Value, (uint)P8.Value); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(), 8); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawWorldMap(); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(this, "WorldMap"), 4); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawImageByID((uint)this.AddressList.SelectedIndex); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename(), 1); }
private void ExportButton_Click(object sender, EventArgs e) { ImageFormRef.ExportImage(this, this.ChangePaletteBitmap, InputFormRef.MakeSaveImageFilename(), 5); }
private void ExportButton_Click(object sender, EventArgs e) { Bitmap bitmap = DrawIcon((uint)AddressList.SelectedIndex, this.IconBaseAddress); ImageFormRef.ExportImage(this, bitmap, InputFormRef.MakeSaveImageFilename()); }
private void MakeButton_Click(object sender, EventArgs e) { if (BustshotBitmap == null || FaceBitmap == null) { return; } int wakuWidth = MakeWakuWidth(); int wakuHeight = MakeWakuHeight(); int tileWidth = wakuWidth / 3; int tileHeight = wakuHeight / 5; { string errorMessage = CheckPartsRange(tileWidth, tileHeight); if (errorMessage != "") { R.ShowStopError(errorMessage); return; } } Bitmap CanvasBitmap = DrawBitmap(0, CATEGORY.PLAIN); Bitmap PortraitBitmap = new Bitmap(128, 112); Graphics gg = Graphics.FromImage(PortraitBitmap); GraphicsSetting(gg); //切り取る部分の範囲を決定する Rectangle srcRect = new Rectangle((int)this.ClipX.Value, (int)this.ClipY.Value, wakuWidth, wakuHeight); Rectangle destRect = new Rectangle(0, 0, 96, 80); //ベースを切り抜く gg.DrawImage(CanvasBitmap, destRect, srcRect, GraphicsUnit.Pixel); //MAP顔 destRect = new Rectangle(96, 16, 32, 16 * 2); gg.DrawImage(CanvasBitmap, destRect, srcRect, GraphicsUnit.Pixel); int eyeX = (((int)this.EyeX.Value - (int)this.ClipX.Value) / tileWidth) * tileWidth + (int)this.ClipX.Value; int eyeY = (((int)this.EyeY.Value - (int)this.ClipY.Value) / tileHeight) * tileHeight + (int)this.ClipY.Value; int mouthX = (((int)this.MouthX.Value - (int)this.ClipX.Value) / tileWidth) * tileWidth + (int)this.ClipX.Value; int mouthY = (((int)this.MouthY.Value - (int)this.ClipY.Value) / tileHeight) * tileHeight + (int)this.ClipY.Value; Rectangle eycSrcRect = new Rectangle(eyeX, eyeY, tileWidth, tileHeight); Rectangle mouthSrcRect = new Rectangle(mouthX, mouthY, tileWidth, tileHeight); //目の位置枠 とろん目 CanvasBitmap = DrawBitmap(2, CATEGORY.TYPE_EYE); destRect = new Rectangle(96, 16 * 3, 32, 16); gg.DrawImage(CanvasBitmap, destRect, eycSrcRect, GraphicsUnit.Pixel); //とろん目の口 CanvasBitmap = DrawBitmap(2, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 2, 16 * 5, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); //目の位置枠 閉じ目 CanvasBitmap = DrawBitmap(7, CATEGORY.TYPE_EYE); destRect = new Rectangle(96, 16 * 4, 32, 16); gg.DrawImage(CanvasBitmap, destRect, eycSrcRect, GraphicsUnit.Pixel); //閉じ目の口は通常の口を利用しにないとダメ. ステータス画面に使われる. CanvasBitmap = DrawBitmap(0, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(96, 16 * 5, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); //笑い目の口 CanvasBitmap = DrawBitmap(6, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 2, 16 * 6, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); //大開の口 CanvasBitmap = DrawBitmap(1, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 0, 16 * 5, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); CanvasBitmap = DrawBitmap(1, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 0, 16 * 6, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); //驚き顔の口 CanvasBitmap = DrawBitmap(4, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 1, 16 * 5, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); //戸惑い顔の口 CanvasBitmap = DrawBitmap(5, CATEGORY.TYPE_MOUTH); destRect = new Rectangle(32 * 1, 16 * 6, 32, 16); gg.DrawImage(CanvasBitmap, destRect, mouthSrcRect, GraphicsUnit.Pixel); if (DecreaseColorCheckBox.Checked == true) { Bitmap PortraitBitmap16 = DecreaseColor16(PortraitBitmap, tileWidth, tileHeight); ImageFormRef.ExportImage(this, PortraitBitmap16, "Portrait", 1); //エクスプローラで選択は自動的にやってくれる. //U.SelectFileByExplorer(savefilename); } else { //そのまま保存. string savefilename = ImageFormRef.ExportImageLow(this, PortraitBitmap, "Portrait"); //エクスプローラで選択 U.SelectFileByExplorer(savefilename); } gg.Dispose(); }