博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Avi视频生成缩略图时,提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”...
阅读量:4994 次
发布时间:2019-06-12

本文共 720 字,大约阅读时间需要 2 分钟。

需求:录制Avi格式视频成功后,使用DirectShow生成缩略图,由于视频录制时,宽高分辨率可调节,所以有些情况下,生成缩略图会抛出异常“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”。

异常位于代码段:bmp = new Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format24bppRgb, hImage);之后。只要对此bmp图像进行操作就会有异常抛出。

于是,查阅msdn关于bitmap类的介绍,如下:

用指定的大小、像素格式和像素数据初始化 Bitmap 类的新实例。 

public Bitmap (	int width,	int height,	int stride,	PixelFormat format,	IntPtr scan0)

参数

width

新 Bitmap 的宽度(以像素为单位)。

height

Bitmap 的高度(以像素为单位)。

stride

指定相邻扫描行开始处之间字节偏移量的整数。这通常(但不一定)是以像素格式表示的字节数(例如,2 表示每像素 16 位)乘以位图的宽度。传递给此参数的值必须为 4 的倍数

format

Bitmap 的 PixelFormat 枚举。

scan0

指向包含像素数据的字节数组的指针。

 

 

根据说明Stride必须为4的倍数,于是限定设置的宽高必须为4的倍数,之后生成的avi在缩略图时不再异常,问题解决。

 

说明:如有更好方法欢迎指出。谢谢。

转载于:https://www.cnblogs.com/lxp-ontheroad/p/3665833.html

你可能感兴趣的文章
Rhythmbox乱码的解决的方法
查看>>
中纪委:抗震中官员临危退缩玩忽职守将被严处
查看>>
MySQL 8.0.12 基于Windows 安装教程
查看>>
在hue中使用hive
查看>>
eclipse快捷键
查看>>
在指定文本里记录内容
查看>>
Android WebView常见问题及解决方案汇总
查看>>
[BZOJ4025]二分图
查看>>
HTML5 Canvas玩转酷炫大波浪进度图
查看>>
创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段
查看>>
电话录音系统说明书
查看>>
JVM(1)——IDEA启动分配内存大小及GC日志打印
查看>>
oracle 批量更新之update case when then
查看>>
text3
查看>>
自己写的连击文字特效
查看>>
【Android】eclipse打不开的解决办法和“Jar mismatch! Fix your dependencies”的解决
查看>>
Mysql查询某字段值重复的数据
查看>>
Java 自学笔记-基本语法3setOut()方法设置新的输出流
查看>>
cocos2d-JS 模块 anysdk 概述
查看>>
docker镜像mac下保存路径
查看>>