图集分割软件ImageSplit (绿色、纯净、免费、共享)

    推荐一款自己编写的一款软件,图集分割软件(绿色、纯净、免费、共享)
因为开发的时候需要将一些图集软件还原成碎图。也找到可以用的,但都不够理想:
    texturepack软件成生的图集没有相应的碎图工具,倒是有一些可用的, 
    spine生成的图集本生自带碎图工具,操作麻烦,所以想自己动手写一个可以同时给二个软件碎图的工具.不想做成插件的形式,因为不只是开发人员使用。
    ImageSplit 是基于wpf 的应用程序,是自己一边学习,顺手完成的作品:软件显示图集信息并导出相应碎图。
    **同时支持spine和texturepacker生成的图集,操作简单,就是拖拉!!!!**

    1. 运行缩放,拖动图片,操作简单。
    2. 支持spine、 texturepack等工具生成的图集,并导出小图。
    3. 支持显示碎图区域、名称。
    4. 绿色、纯净、免费、共享,解压即可用。
    5. 软件分享地址:我用夸克网盘分享了「ImgSplitv1.0.0.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/17bbe4874328

技术实现: 移动、缩放cavas:
>        <Border x:Name="border" PreviewMouseDown="border_PreviewMouseDown" PreviewMouseMove="border_PreviewMouseMove" PreviewMouseWheel="Border_MouseWheel" ClipToBounds="True" Background="LightCyan">
>             <Canvas x:Name="canvas" Width="{Binding ActualWidth, ElementName=border, Mode=OneWay}" Height="{Binding ActualHeight, ElementName=border, Mode=OneWay}" >
>                 <Image Source="{Binding Path=ImgPah}" ></Image>
>             </Canvas>
>         </Border>

代码实现:

        private void Border_MouseWheel(object sender, MouseWheelEventArgs e)
        {
            System.Windows.Point pt = e.GetPosition(border);
            TransformGroup? tg = canvas.RenderTransform as TransformGroup;
            if (tg == null) { tg = new TransformGroup(); canvas.RenderTransform = tg; }
            double s = ((double)e.Delta) / 1000.0 + 1.0;
            tg.Children.Add(new ScaleTransform(s, s, pt.X, pt.Y));
            e.Handled = true;
        }
        System.Windows.Point previousPt;
        bool isTranslateStart= false;
        private void border_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed )
            {
                previousPt = e.GetPosition(border);
                isTranslateStart = true;
            }
            e.Handled = true;      
        }

        private void border_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if(e.LeftButton == MouseButtonState.Pressed && isTranslateStart)
            {
                System.Windows.Point currentPt = e.GetPosition(border);
                Vector v= currentPt - previousPt;
                TransformGroup? tg = canvas.RenderTransform as TransformGroup;
                if (tg == null) { tg = new TransformGroup(); canvas.RenderTransform = tg; }
                tg.Children.Add(new TranslateTransform(v.X,v.Y) );
                previousPt = currentPt;
            }
            e.Handled= true;
        }
  
 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值