吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2190|回复: 10
收起左侧

[其他转载] .net 6 练手demo 将图片转为ico格式

  [复制链接]
xu低调 发表于 2022-5-27 22:48
.net6 发布了也有一段时间了 闲来无聊
起因:时不时需要讲图片转为ico格式 感觉每次都找网站 下载软件很麻烦
刚好用.net6 练练手 自己写了个

看vs 2022 提示 好像只能在Windows平台运行(说好的跨平台,可能是引用的包的问题) 就自己打包了一个32位的
附上代码 自己看一看吧
使用方式 :将源图片直接拖到exe上 自动转换格式存到原路径

想要什么样的自己根据源码改吧


[C#] 纯文本查看 复制代码
using System.Drawing;
using System.Drawing.Imaging;

if (args.Length > 0)//读取拖入文件的路径
{
    FileInfo fileInfo = new FileInfo(args[0]);
    Console.WriteLine("拖入是的文件名是:" + fileInfo.FullName);
    ConvertImageToIcon(fileInfo.FullName, fileInfo.FullName.Split('.')[0] + ".ico", new Size(128, 128));
}

/// <summary>
/// 图片转换为ico文件
/// </summary>
/// <param name="origin">原图片路径</param>
/// <param name="destination">输出ico文件路径</param>
/// <param name="iconSize">输出ico图标尺寸,不可大于255x255</param>
/// <returns>是否转换成功</returns>
static bool ConvertImageToIcon(string origin, string destination, Size iconSize)
{
    if (iconSize.Width > 255 || iconSize.Height > 255)
    {
        return false;
    }
    using (var image = new Bitmap(new Bitmap(origin), iconSize))
    {
        //存原图的内存流
        using var bitMapStream = new MemoryStream();
        using var iconStream = new MemoryStream();
        image.Save(bitMapStream, ImageFormat.Png); //将原图读取为png格式并存入原图内存流
        using (var iconWriter = new BinaryWriter(iconStream))
        {
            iconWriter.Write((short)0);
            iconWriter.Write((short)1);
            iconWriter.Write((short)1);
            iconWriter.Write((byte)image.Width);
            iconWriter.Write((byte)image.Height);
            iconWriter.Write((short)0);
            iconWriter.Write((short)0);
            iconWriter.Write((short)32);
            iconWriter.Write((int)bitMapStream.Length);
            iconWriter.Write(22);
            //写入图像体至目标图标内存流
            iconWriter.Write(bitMapStream.ToArray());
            //保存流,并将流指针定位至头部以Icon对象进行读取输出为文件
            iconWriter.Flush();
            iconWriter.Seek(0, SeekOrigin.Begin);
            using (var iconFileStream = new FileStream(destination, FileMode.Create))
            {
                using var icon = new Icon(iconStream);
                icon.Save(iconFileStream); //储存图像
            }
        }

    }
    return File.Exists(destination);
}



ToIcon.rar

227.28 KB, 下载次数: 55, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Xnjikol + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

halewandering 发表于 2022-5-28 11:19
可以想要什么样的自己根据源码改。
iawyxkdn8 发表于 2022-5-28 15:46
这么麻烦,我把所有的网站做成一个网页,分类整理,这东西网页一转就好了
tek2y 发表于 2022-5-28 16:03
2014miss 发表于 2022-5-28 16:41
支持一下
 楼主| xu低调 发表于 2022-5-28 17:09
iawyxkdn8 发表于 2022-5-28 15:46
这么麻烦,我把所有的网站做成一个网页,分类整理,这东西网页一转就好了

各有所好吧 我是懒得每次打开网站 还得上传文件  直接放个快捷方式在桌面 需要转换的图片丢过去就能处理好 更快一点
kvttt_2021 发表于 2022-6-5 12:39
win10下无法运行。
 楼主| xu低调 发表于 2022-6-5 22:52
kvttt_2021 发表于 2022-6-5 12:39
win10下无法运行。

需要.net6 runtime
宋雨鹏 发表于 2022-6-6 08:35
        用心讨论,共获提升!
cxx313120919 发表于 2022-6-10 17:11
套娃模式怎么处理 继续加吗
32*32 64*64 128*128 都在一个里面
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 05:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表