返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >基于C#实现乱码视频效果
  • 480
分享到

基于C#实现乱码视频效果

C#实现乱码视频效果C#乱码视频效果C#乱码视频 2023-01-12 15:01:31 480人浏览 八月长安
摘要

目录文章描述开发环境开发工具实现代码实现效果文章描述 这个效果可能很多人都在抖音看到过,即把一个短视频,转成数字、字母等乱码组成的形式进行播放。 开发环境 .net Framewo

文章描述

这个效果可能很多人都在抖音看到过,即把一个短视频,转成数字、字母等乱码组成的形式进行播放。

开发环境

.net Framework版本:4.5

开发工具

 Visual Studio 2013

实现代码

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("转换完成");

        }

        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();
        }

实现效果

代码解析:实现原理是首先利用ffmpeg将视频分割成一帧帧的图片,然后将每张图片进行一个二值化处理,最后判断灰度值,大于阈值的情况下随便输入一个字符,否则就输入空格。这里是使用了字符串来记录了各个图片的生成情况,最后保存到一个个的记事本中去。

在展示页面中,只需要将文件夹中的记事本文档按照顺序排列并逐个读取显示即可。

到此这篇关于基于C#实现乱码视频效果的文章就介绍到这了,更多相关C#乱码视频内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于C#实现乱码视频效果

本文链接: https://lsjlt.com/news/177555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于C#实现乱码视频效果
    目录文章描述开发环境开发工具实现代码实现效果文章描述 这个效果可能很多人都在抖音看到过,即把一个短视频,转成数字、字母等乱码组成的形式进行播放。 开发环境 .NET Framewo...
    99+
    2023-01-12
    C#实现乱码视频效果 C#乱码视频效果 C#乱码视频
  • JS实现视频弹幕效果
    使用ES6的模块化开发及观察者模式来实现。观察者模式有很多种形式,这里是使用“注册—通知—撤销注册”的形式。TimeManager类可以返回一个单例,每一条弹幕作为一个观察者,注册到...
    99+
    2024-04-02
  • Android实现短视频画心效果
    本文实例为大家分享了Android实现短视频画心效果的具体代码,供大家参考,具体内容如下 布局 主布局 <?xml version="1.0" encoding="...
    99+
    2024-04-02
  • python基于moviepy实现音视频剪辑
    目录实践步骤完整代码参考实践步骤 寻找合适的Python库(安装是否麻烦、使用是否简便、执行会不会太久) moviepy 音视频库。分析需要用的API:代码示例 定义输入输出 输入:...
    99+
    2022-06-02
    python moviepy python 音频剪辑 python 视频剪辑
  • 基于OpenCV实现视频循环播放
    目录介绍1.Python+OpenCV实现2.C+++OpenCV实现补充介绍 本文将介绍基于OpenCV实现视频的循环播放。 有以下三个步骤: 首先设置一个frame的设置参数fr...
    99+
    2024-04-02
  • 基于Qt实现视频播放器功能
    目录一、功能介绍二、代码三、运行一、功能介绍 能实现视频播放 二、代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWIND...
    99+
    2024-04-02
  • 基于python实现去除视频的水印
    我们再搬运视频的时候常常会遇到视频有水印的问题 如下 下面就通过python来实现对视频水印的去除 在pycharm新建一个项目,创建image,video目录其他不用 必要条件 在终端下载相关依赖包 pip install moviep...
    99+
    2023-09-14
    python 音视频 numpy
  • 基于Python实现视频去重小工具
    同级目录下新建dup_video import json import os import shutil import cv2 import imagehash from PIL ...
    99+
    2023-03-24
    Python实现视频去重工具 Python视频去重 Python视频
  • 基于Python实现视频分辨率转换
    目录前言环境依赖代码验证一下前言 本文提供将视频调整分辨率的Python代码,一如既往的实用主义。 环境依赖 ffmpeg环境安装,可以参考文章:windows ffmpeg安装部署...
    99+
    2024-04-02
  • AndroidFlutter实现视频上滑翻页效果的示例代码
    目录前言PageView 组件介绍使用示例PageController 应用前言 我们在短视频应用中经常会看到不停上滑浏览下一条视频的沉浸式交互效果,这种交互能够让用户不停地翻页,直...
    99+
    2022-11-13
    Android Flutter上滑翻页效果 Flutter 上滑翻页 Android 翻页
  • vue+js实现视频淡入淡出效果
    vue+js实现视频的淡入淡出,供大家参考,具体内容如下 一个简单的视频淡入淡出效果如图 小编直接上代码了有兴趣可以拷贝运行一下,谢谢 <template> &...
    99+
    2024-04-02
  • 基于jquery实现日历效果
    本文实例为大家分享了jquery实现日历效果的具体代码,供大家参考,具体内容如下 function getBDays( y, m ) { return (new Da...
    99+
    2024-04-02
  • 基于Echarts实现饼图效果
    本文实例为大家分享了Echarts实现饼图效果的具体代码,供大家参考,具体内容如下 1 显示数值效果 series 下的label 饼图的文字显示2 半径 圆环 radius3 南丁...
    99+
    2024-04-02
  • 基于Python实现丝滑换装视频剪辑
    目录软硬件、技能需求颜色变换说明Python 应用插件思路流程MiVOS 模块交互式看到人家用PR什么编辑软件做这种丝滑一键换装的视频,自己也想尝试一下。不过PR这破玩意太难用了,还...
    99+
    2024-04-02
  • 基于Python实现视频自动下载软件
    目录序言效果展示下载视频下载弹幕下载评论软件生成打包序言 哈喽兄弟们,今天来实现一个Python采集视频、弹幕、评论与一体的小软件。 平常咱们都是直接代码运行,不过今天我们做成软件,...
    99+
    2024-04-02
  • 基于Qt实现视频播放器的制作
    本篇博客介绍如何利用qMediaPlayer和qvideowidget实现视频文件(avi,mp4….)的播放,并且提供进度显示,还可以通过拖动进度条来变换播放位置。 ...
    99+
    2022-12-08
    Qt实现视频播放器 Qt 视频播放器 Qt 视频播放
  • 基于Python实现烟花效果的示例代码
    python烟花代码 如下 # -*- coding: utf-8 -*- import math, random,time import threading import tki...
    99+
    2024-04-02
  • 基于WPF实现弹幕效果的示例代码
    WPF 实现弹幕效果 框架使用大于等于.NET40; Visual Studio 2022; 项目使用 MIT 开源许可协议; 此篇代码目的只是为了分享思路 实现...
    99+
    2024-04-02
  • Android仿腾讯视频实现悬浮窗效果
    前言 相信大家对Android悬浮窗应该是很熟悉了,比如说腾讯视频、爱奇艺等APP都有悬浮窗功能。在你打游戏的同时还可以看视频,充分利用屏幕空间。还有微信,360手机卫士等APP也有...
    99+
    2024-04-02
  • 基于Android实现3D翻页效果
    最近做了一个简单的3D效果翻页特效,先说说我的思路吧,首先我这个翻页效果并不是两个Activity之间的跳转,而是在同一个activity类切换不同的view而已。我现在的做法...
    99+
    2022-06-06
    3d Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作