예제 #1
0
파일: Form1.cs 프로젝트: r1cebank/AmiMat
 private void btnShowPreview_Click(object sender, EventArgs e)
 {
     //When more than one frame, create duplicate action and view action
     if (Package.PackageState != AMTUtil.State.READY)
     {
         return;
     }
     if (lbFrames.SelectedIndex == -1)
     {
         MessageBox.Show("You need to select a frame!");
         return;
     }
     if (lbFrames.SelectedItems.Count > 1)
     {
         MessageBox.Show("You cannot view more than one frame.");
         return;
     }
     if (Package.Animation.Actions[lbActions.SelectedIndex].Frames[lbFrames.SelectedIndex].ActionRef == null)
     {
         AMTResource  PreviewResource = AMTUtil.GetResourceFromName(Package, Package.Animation.Actions[lbActions.SelectedIndex].Frames[lbFrames.SelectedIndex].Resource);
         FramePreview PreviewWindow   = new FramePreview(AMTUtil.BytesToImage(PreviewResource.Frames[Package.Animation.Actions[lbActions.SelectedIndex].Frames[lbFrames.SelectedIndex].FrameRef]));
         PreviewWindow.Show();
     }
     else
     {
         ActionPreview PreviewWindow = new ActionPreview(Package,
                                                         AMTUtil.GetActionFromName(Package.Animation, Package.Animation.Actions[lbActions.SelectedIndex].Frames[lbFrames.SelectedIndex].ActionRef));
         PreviewWindow.Show();
     }
 }
예제 #2
0
파일: Form1.cs 프로젝트: r1cebank/AmiMat
        private void lbFrames_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (lbGifFrames.SelectedIndex == -1)
                {
                    return;
                }

                //Make sure frames have been extracted
                if (Package.CurrentResource.Frames == null || Package.CurrentResource.Frames.Count() == 0)
                {
                    throw new NoNullAllowedException("Frames have not been extracted");
                }

                //Make sure the selected index is within range
                if (lbGifFrames.SelectedIndex > Package.CurrentResource.Frames.Count() - 1)
                {
                    throw new IndexOutOfRangeException("Frame list does not contain index: " + lbGifFrames.SelectedIndex.ToString());
                }

                //Clear the PictureBox
                ClearPictureBoxImage();

                //Load the image from the byte array
                pbFrame.Image = AMTUtil.BytesToImage(Package.CurrentResource.Frames[lbGifFrames.SelectedIndex]);

                lblMd5.Text = "MD5: " + AMTUtil.ImageMD5(pbFrame.Image);
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    "Error type: " + ex.GetType().ToString() + "\n" +
                    "Message: " + ex.Message,
                    "Error in " + MethodBase.GetCurrentMethod().Name
                    );
            }
        }