c# - 需要将javascript代码转换为C#

标签 c# javascript

我发现一个可压缩和解压缩字符串的javascript库。我正在用C#编写一个创建javascript的程序。在此脚本中,所有图像都需要转换为base64string,然后进行压缩,以便在执行脚本时使用解压缩功能,然后解压缩并显示图像。

compress和compress函数都可以正常工作,但是我需要压缩器的确切C#版本,以便javascript解压缩器可以对其进行解压缩。这是图书馆:

     function lzw_encode(s) {
        var dict = {};
        var data = (s + "").split("");
        var out = [];
        var currChar;
        var phrase = data[0];
        var code = 256;
        for (var i = 1; i < data.length; i++) {
            currChar = data[i];
            if (dict[phrase + currChar] != null) {
                phrase += currChar;
            }
            else {
                out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
                dict[phrase + currChar] = code;
                code++;
                phrase = currChar;
            }
        }
        out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
        for (var i = 0; i < out.length; i++) {
            out[i] = String.fromCharCode(out[i]);
        }
        return out.join("");
    }

    // Decompress an LZW-encoded string
    function lzw_decode(s) {
        var dict = {};
        var data = (s + "").split("");
        var currChar = data[0];
        var oldPhrase = currChar;
        var out = [currChar];
        var code = 256;
        var phrase;
        for (var i = 1; i < data.length; i++) {
            var currCode = data[i].charCodeAt(0);
            if (currCode < 256) {
                phrase = data[i];
            }
            else {
                phrase = dict[currCode] ? dict[currCode] : (oldPhrase + currChar);
            }
            out.push(phrase);
            currChar = phrase.charAt(0);
            dict[code] = oldPhrase + currChar;
            code++;
            oldPhrase = phrase;
        }
        return out.join("");
    }


有人可以帮助我将lzw_encode函数转换为C#吗?

最佳答案

有一个名为Sharp-LZW的开源库,该库以C#提供LZW编码和解码。您可以在这里找到它:https://code.google.com/p/sharp-lzw/

关于c# - 需要将javascript代码转换为C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804622/

相关文章:

c# - 将多个文本框数据插入到 Excel 文件中

c# - 当 SplitView 处于紧凑模式时拉伸(stretch) SplitView.Pane 的内容

javascript - SetInterval 只在第一次运行

javascript - 从 JavaScript 订阅 RabbitMQ 以接收推送消息

javascript - Ajax 调用总是以 Undefined 的形式返回并且没有到达后面的代码

javascript - Promise reject - 超时日志记录放置

c# - 这个正则表达式是什么意思 - "\p{Lu}"?

c# - HttpWebRequest 队列库,保证请求传递

c# - 无法在 Windows Phone 8.1 中的 FrayxRulez/SwipeListView 控件中导航页面

javascript - element.style 在 typescript 中不起作用 [Angular 5]