Util/MyClass/GifImage.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
using System.Windows.Threading;

namespace Util.MyClass
{
    public class GifImage : System.Windows.Controls.Image
    {
        /// <summary> 
        /// gif动画的System.Drawing.Bitmap 
        /// </summary> 
        private Bitmap gifBitmap;

        /// <summary> 
        /// 用于显示每一帧的BitmapSource 
        /// </summary> 
        private BitmapSource bitmapSource;

        public GifImage(string gifPath)
        {
            this.gifBitmap = new Bitmap(gifPath);
            this.bitmapSource = this.GetBitmapSource();
            this.Source = this.bitmapSource;
        }

        /// <summary> 
        /// 从System.Drawing.Bitmap中获得用于显示的那一帧图像的BitmapSource 
        /// </summary> 
        /// <returns></returns> 
        private BitmapSource GetBitmapSource()
        {
            IntPtr handle = IntPtr.Zero;

            try
            {
                handle = this.gifBitmap.GetHbitmap();
                this.bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(handle, IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
            }
            finally
            {
                if (handle != IntPtr.Zero)
                {
                    DeleteObject(handle);
                }
            }

            return this.bitmapSource;
        }

        /// <summary> 
        /// Start animation 
        /// </summary> 
        public void StartAnimate()
        {
后面还有 40 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。