public frmSpriteFrameAdd(RoSprite Sprite) { mSprite = Sprite; InitializeComponent(); for (int i = 0; i < mSprite.Images.Count; i++) { cmbAddPosition.Items.Add((i + 1)); } cmbAddType.SelectedIndex = 0; cmbAddPosition.SelectedIndex = cmbAddPosition.Items.Count - 1; }
public bool ExportImage(RoGrfFileItem grfItem) { byte[] spriteData = grfItem.FileData; string sprFilepath = Path.GetTempFileName(); File.WriteAllBytes(sprFilepath, spriteData); spriteData = null; try { using (RoSprite sprFile = new RoSprite(sprFilepath)) { sprFile.DrawImage(0); using (Bitmap bmp = sprFile.GetImageTransparent(0)) { bmp.Save(Environment.CurrentDirectory + @"\data\mobs\" + ID + ".png"); } } } catch (Exception ex) { return(false); } return(true); }
public void SetData(byte[] spriteData, string name) { if (spriteData == null || spriteData.Length == 0) { ResetAllOperations(); return; } mName = name; mSprite = new RoSprite(spriteData); if (mSprite.ImagesPal.Count == 0 && mSprite.ImagesRgba.Count == 0) { ResetAllOperations(); return; } mCurrentTypePal = (mSprite.ImagesPal.Count > 0); // force to update image mCurrentIndex = -1; SetImage(0); }
private bool OpenSprite(string spritepath, bool fromBash) { mSprite = new RoSprite(spritepath); if (mSprite.Images.Count == 0) // lol { mSprite = null; if (fromBash) { SetControls(false); } return(false); } InitializePalette(); mWndSprite.SpriteControl.BackColor = mSprite.Palette[0]; SetImage(0); if (fromBash) { SetControls(true); } return(true); }
public void TestPoring() { var spr = new RoSprite(GetDataPath("poring.spr")); }