最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于C#實現(xiàn)亂碼視頻效果

 更新時間:2023年01月12日 14:35:59   作者:Csharp小記  
亂碼視頻效果可能很多人都在抖音看到過,即把一個短視頻,轉(zhuǎn)成數(shù)字、字母等亂碼組成的形式進(jìn)行播放。本文將用C#實現(xiàn)一下這一效果,感興趣的可以了解一下

文章描述

這個效果可能很多人都在抖音看到過,即把一個短視頻,轉(zhuǎn)成數(shù)字、字母等亂碼組成的形式進(jìn)行播放。

開發(fā)環(huán)境

.NET Framework版本:4.5

開發(fā)工具

 Visual Studio 2013

實現(xiàn)代碼

private void btn_convert_Click(object sender, EventArgs e)
        {
            string framePath = Application.StartupPath + "\\temp";
            if (Directory.Exists(framePath))
            {
                Directory.Delete(framePath, true);
            }
            Directory.CreateDirectory(framePath);

            //string newFramePath = Application.StartupPath + "\\newTemp";
            //if (Directory.Exists(newFramePath))
            //{
            //    Directory.Delete(newFramePath, true);
            //}
            //Directory.CreateDirectory(newFramePath);


            FFmpegUtil.Split(axWindowsMediaPlayer1.URL, framePath);


            List<char> listChar = new List<char>();
            for (char i = 'a'; i <= 'z'; i++)
            {
                listChar.Add(i);
            }
            for (char i = 'A'; i <= 'Z'; i++)
            {
                listChar.Add(i);
            }
            for (char i = '0'; i <= '9'; i++)
            {
                listChar.Add(i);
            }

            string[] imgUrls = Directory.GetFiles(framePath);
            Bitmap img = null;
            for (int u = 0; u < imgUrls.Length; u++)
            {
                img = (Bitmap)Image.FromFile(imgUrls[u]);
                double threshold = ImageUtil.GetAverageThreshold(img);
                ImageUtil.Threshold(img, threshold);

                StringBuilder builder = new StringBuilder();
                Random random = new Random();

                for (int y = 0; y < img.Height; y += 16)
                {
                    for (int x = 0; x < img.Width; x += 8)
                    {
                        if (ImageUtil.GetGrayValue(img.GetPixel(x, y)) < threshold)
                        {
                            builder.Append(listChar[random.Next(62)]);
                        }
                        else
                        {
                            builder.Append(" ");
                        }

                    }
                    builder.Append("\r\n");
                }
                File.WriteAllText(@"C:\Users\Zero\Desktop\a\b\" + u + ".txt", builder.ToString());
            }
            MessageBox.Show("轉(zhuǎn)換完成");

        }

        private void btn_show_Click(object sender, EventArgs e)
        {
            new FormShow(@"C:\Users\Zero\Desktop\a\b\").Show();
        }
 private void FormShow_Load(object sender, EventArgs e)
        {
            List<string> list = Directory.GetFiles(_path, "*.txt").ToList();
            if (list.Count == 0)
            {
                return;
            }
            list.Sort((a, b) =>
            {
                string reg = "[0-9]+";
                int a_index = int.Parse(Regex.Match(a, reg).Value);
                int b_index = int.Parse(Regex.Match(b, reg).Value);
                return a_index.CompareTo(b_index);
            });
            richTextBox1.Text = File.ReadAllText(list[0]);
            Width = richTextBox1.Lines.Max(s => s).Length * 5;
            Height = richTextBox1.Lines.Length * 10;
            Location = new Point(Location.X, 10);

            new Task(async () =>
            {
                foreach (string str in list)
                {
                    if (!this.IsDisposed)
                    {
                        this.BeginInvoke(new Action(() =>
                        {
                            richTextBox1.Text = File.ReadAllText(str);
                        }));
                    }
                    await Task.Delay(260);
                }
            }).Start();
        }

實現(xiàn)效果

代碼解析:實現(xiàn)原理是首先利用ffmpeg將視頻分割成一幀幀的圖片,然后將每張圖片進(jìn)行一個二值化處理,最后判斷灰度值,大于閾值的情況下隨便輸入一個字符,否則就輸入空格。這里是使用了字符串來記錄了各個圖片的生成情況,最后保存到一個個的記事本中去。

在展示頁面中,只需要將文件夾中的記事本文檔按照順序排列并逐個讀取顯示即可。

到此這篇關(guān)于基于C#實現(xiàn)亂碼視頻效果的文章就介紹到這了,更多相關(guān)C#亂碼視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#使用HttpClient的正確方式你了解嗎

    C#使用HttpClient的正確方式你了解嗎

    在微服務(wù)架構(gòu)體系中經(jīng)常需要向特定?URL?地址發(fā)送?Http?請求操作,在?.net?core?中?httpClient?使用不當(dāng)會造成災(zāi)難性的問題,這篇文章主要來分享?.net?core?中通過?IHttpClientFactory?工廠來使用?HttpClient?的正確打開方式
    2021-11-11
  • C#把文件上傳到服務(wù)器中的指定地址

    C#把文件上傳到服務(wù)器中的指定地址

    這篇文章介紹了C#實現(xiàn)文件上傳到服務(wù)器指定地址的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#控件閃爍的解決方法

    C#控件閃爍的解決方法

    這篇文章主要介紹了C#控件閃爍的解決方法,涉及SetStyle函數(shù)的使用技巧,需要的朋友可以參考下
    2015-01-01
  • C#中標(biāo)準(zhǔn)的IDispose模式代碼詳解

    C#中標(biāo)準(zhǔn)的IDispose模式代碼詳解

    在本篇文章中小編給大家分享的是關(guān)于C#中標(biāo)準(zhǔn)的IDispose模式的實例用法相關(guān)內(nèi)容,有需要的朋友們測試下。
    2019-09-09
  • 提高C# StringBuilder操作性能優(yōu)化的方法

    提高C# StringBuilder操作性能優(yōu)化的方法

    本篇文章主要介紹使用C# StringBuilder 的項目實踐,用于減少內(nèi)存分配,提高字符串操作的性能。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C# DataGridView綁定數(shù)據(jù)源的方法

    C# DataGridView綁定數(shù)據(jù)源的方法

    這篇文章主要為大家詳細(xì)介紹了C# DataGridView綁定數(shù)據(jù)源的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • C#實現(xiàn)為類和函數(shù)代碼自動添加版權(quán)注釋信息的方法

    C#實現(xiàn)為類和函數(shù)代碼自動添加版權(quán)注釋信息的方法

    這篇文章主要介紹了C#實現(xiàn)為類和函數(shù)代碼自動添加版權(quán)注釋信息的方法,主要涉及安裝文件的修改及函數(shù)注釋模板的修改,需要的朋友可以參考下
    2014-09-09
  • C#獲取路徑的幾種方式實例分析

    C#獲取路徑的幾種方式實例分析

    這篇文章主要介紹了C#獲取路徑的幾種方式,實例分析了C#常用的路徑操作技巧,需要的朋友可以參考下
    2015-06-06
  • c#遞歸生成XML實例

    c#遞歸生成XML實例

    這篇文章主要介紹了c#遞歸生成XML的方法,以實例形式較為詳細(xì)的介紹了C#的遞歸算法與XML操作技巧,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • C#遍歷系統(tǒng)進(jìn)程的方法

    C#遍歷系統(tǒng)進(jìn)程的方法

    這篇文章主要介紹了C#遍歷系統(tǒng)進(jìn)程的方法,涉及C#底層操作獲取系統(tǒng)信息與硬件信息的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評論

紫阳县| 崇阳县| 霍邱县| 锦州市| 德昌县| 印江| 富民县| 荣成市| 清水县| 无锡市| 新津县| 丰宁| 南平市| 隆安县| 安仁县| 都安| 浮山县| 丰城市| 嘉鱼县| 陆川县| 永昌县| 庐江县| 佳木斯市| 元阳县| 贡山| 灵武市| 紫阳县| 岱山县| 洛阳市| 绥宁县| 永新县| 绍兴市| 淮南市| 婺源县| 神池县| 元谋县| 开鲁县| 延长县| 明溪县| 龙岩市| 芜湖市|