酷狗歌手写真一键提取工具

工具下载:酷狗写真一键提取工具.zip

前几天在听歌时,发现by2那性感撩人的照片,一股热血涌上心头,突然非常想下载这些照片。于是我百度了一下怎么提取,百度经验告诉了我。

酷狗的歌词写真是保存在C:\Users\用户名\AppData\Roaming\KuGou8(7)\SingerImg 目录下,格式为KRS,不容易提取。

有一个园友刚好写过一个KRS提取工具,也是用来提取酷狗歌词的,但是不是很智能,而且功能比较简单,于是我就自己搞了个,本人运行效果还不错。

软件界面和说明

1.自动识别当前用户,找到酷狗写真文件夹

2.友好的提示和进度信息

3.一键获取,不需要额外的操作,默认保存路径为D:\酷狗歌手写真,没有D盘我也没有办法...

4.运行清理工具清理后我也没有办法...

5. win7 net framework 3.5 

6,安装了酷狗,有写真需要提取...

运行后的结果

代码实现

主要的核心是怎么提取KRS文件,解析代码如下

        /// <summary>
        /// 获取KRS文件流的字符串
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public string ReadFiles(string path)
        {
            FileStream stream = null;
            string str;
            try
            {
                if (File.Exists(path))
                {
                    stream = File.OpenRead(path);
                    byte[] buffer = new byte[stream.Length];
                    stream.Read(buffer, 0, buffer.Length);
                    stream.Flush();

                    return this.byteToHexStr(buffer);
                }
                str = null;
            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
            return str;
        }
        /// <summary>
        /// 转16进制
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public string byteToHexStr(byte[] bytes)
        {
            string str;
            try
            {
                StringBuilder builder = new StringBuilder();
                if (bytes != null)
                {
                    for (int i = 0; i < bytes.Length; i++)
                    {
                        builder.Append(bytes[i].ToString("X2"));
                    }
                }
                str = builder.ToString();
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return str;
        }
        /// <summary>
        /// 得到文件的进制字符串
        /// </summary>
        /// <param name="krsData"></param>
        /// <returns></returns>
        public List<string> getPicHexs(string krsData)
        {
            List<string> list = new List<string>();
            Regex regex = new Regex("FFD9(0A)*$");
            string[] strArray = krsData.Replace("FFD8FFE0", "|").Split(new char[] { '|' });
            foreach (string str in strArray)
            {
                if (regex.IsMatch(str))
                {
                    list.Add("FFD8FFE0" + str);
                }
            }
            return list;
        }
        /// <summary>
        /// 保存图片文件
        /// </summary>
        /// <param name="data">KRS单个图片的字符串</param>
        /// <param name="path">图片文件保存路径</param>
        public void WriteFiles(string data, string path)
        {
            FileStream stream = null;
            try
            {
                stream = File.Create(path);
                byte[] buffer = strToToHexByte(data);
                stream.Write(buffer, 0, buffer.Length);
                stream.Flush();
            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                    stream.Dispose();
                }
            }
        }

 思考和可扩展功能

1.自由选取保存和打开路径

2.C:\Users\Administrator\AppData\Roaming\KuGou8\SingerImg\SingerRes.xml 保存了歌手和KRS对应关系,可以分文件夹保存。

如果工具不适合自己,可以自己修改和开发,现在感觉达到我的需求了。这些功能我就不实现了,如果有兴趣的可以反编译我的工具,代码太丑,全部代码就不公布了...

posted @ 2015-03-18 20:49  清风君  阅读(4896)  评论(5编辑  收藏  举报