① 如何用c语言编写一个视频播放器
视频播放器是一种解码器。
解码器是对已编码的数字视频进行还原解码操作的程序(视频播放器)或设备。比如系统安装了real编码器那就能将其他格式文件转换成rm或rmvb格式,如果安装了real解码器那就能播放rm或rmvb格式文件。
这已经不是简单C语言能够编写出来的,它的核心是解码编码的算法。
1,如果你只是想用某些功能,不要自己编了。找一个吧。
2,非要自己编的话,要站在巨人的肩膀上。很多种编码都有开源的解码器了。可以利用他们。或者利用开源的软件,在人家基础上开发。
3,如果你认为你有希望改进压缩解压算法,得到更好的效果,更省地方,更有效的解压算法。那首先要做的是了解各种编码的压缩解压算法。创造一种更好的算法。
② 急求:C语言进制转换器代码完善...又加分了!!!
给
void
two_ten()
{
long
num;
int
b,TheTen=0,Total=0;
printf("\n请输入一个二进制数(只包含0或1):");
scanf("%ld",&num);
while(num)
{
b=num-(int)(num/10)*10;
TheTen+=b*pow(2,Total);;
Total++;
num=(int)(num/10);
}
printf("转换为十进制:");
//打印
printf("%d",TheTen);
printf("\n");
}
void
eight_ten()
{
int
num,
i;
int
arr[20];
printf("\n请输入一个八进制数(只由0~7之前的数组成):");
scanf("%o",&num);
printf("转换为十进制:");
//打印
printf("%d",num);
printf("\n");
}
void
sixteen_ten()
{
int
num,
i;
int
arr[20];
printf("\n请输入一个十六进制数(只由0~9和A~F之前的数组成):");
scanf("%X",&num);
printf("转换为十进制:");
//打印
printf("%d",num);
printf("\n");
}
③ 请教如何用C语言实现10进制转换5进制的转换器
//这是我数据结构课上老师留的课堂作业,但是此代码并非本人原创。但已通过验证。
//这个代码可以把十进制的转换成任意进制的。
#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 50
#define STACK_INCREMENT 10
//①------------栈定义--------
typedef struct{
int *base;
int *top;
int stacksize;
}Stack;
//②-----------构造栈---------
Stack InitStack()
{
Stack s;
s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!s.base) exit(0);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return s;
}
//③------------判空----------
int StackEmpty(Stack s)
{
if(s.base==s.top) //若为空,返回1
return 1;
else
return 0;
}
//④---------- 清空栈----------
void ClearStack(Stack s)
{
s.top=s.base;
}
//⑤------------压栈-------------
void Push(Stack *s,int elem) //必须用指针,否则top地址出了函数后不变
{
if((s->top-s->base+1)>=s->stacksize)
{
s->base=(int *)realloc(s->base,(STACK_INCREMENT+s->stacksize)*sizeof(int));
if(!s->base) exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=STACK_INCREMENT;
}
*(s->top++)=elem;
}
//⑥------------出栈---------------
int Pop(Stack *s) //必须用指针,否则top地址出了函数后不变
{
if(s->base==s->top)
{
printf("栈为空!");
exit(0);
}
//printf("%d ",*(--s.top));
return *(--s->top);
}
//⑦------------求栈长-----------
int GetLength(Stack s)
{
return s.top-s.base;
}
//⑧-------------求栈顶----------
int GetTop(Stack s)
{
if(s.top==s.base)
{
printf("栈为空!\n");
exit(0);
}
return *(s.top-1);
}
//------------主函数-----------
int main()
{
int d1,d2,d3;
Stack s,*s1;
s=InitStack();
s1=&s;
/*
printf("stacksize=%d\n",s.stacksize);
Push(s1,5);
length=GetLength(s);
printf("栈长为:%d\n",length);
Push(s1,8);
length=GetLength(s);
printf("栈长为:%d\n",length);
printf("top=%d\n",GetTop(s));
printf("%d ",Pop(s1));
length=GetLength(s);
printf("栈长为:%d\n",length);
printf("%d ",Pop(s1));
length=GetLength(s);
printf("栈长为:%d\n",length);
*/
printf("输入要转换的十进制数及要转换为几进制:(d1 d2)\n");
scanf("%d%d",&d1,&d2);
d3=d1;
while(d1>=d2)
{
Push(s1,(d1%d2));
d1=d1/d2;
}
Push(s1,d1);
printf("%d转化为%d进制后为:\n",d3,d2);
while(!StackEmpty(s))
{
printf("%d",Pop(s1));
}
printf("\n");
}
④ 用C语言怎样才能将普通摄像头获得的视频变成可以处理的数据啊
从数据库读出的JPG文件的字符流,转换成图片显示在页面上的相关代码
转图片的到有,那个的话是转换成视频流
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
ServletOutputStream out = res.getOutputStream();
Statement dispStmt = null, setStmt = null;
try {
dispStmt = Con.createStatement();
setStmt = Con.createStatement();
setStmt.executeUpdate("set textsize 2048000");
} catch (Exception e) {
out.println("Create Statement error:" + e.toString() + "<br>");
}
String ls_sql = null;
ls_sql = req.getParameter("ImageSQL");
if (ls_sql == null)
ls_sql = "";
ls_sql = ls_sql.trim();
if (!ls_sql.equals("")) {
ResultSet rs = null;
try {
rs = dispStmt.executeQuery(ls_sql);
} catch (Exception e) {
System.out.println(
"Unable to Exec Statment" + e.toString() + "<br>");
}
try {
while (rs.next()) {
try {
res.setContentType("image/jpeg");
InputStream is = rs.getBinaryStream(1);
int size = is.available();
byte[] bzp = new byte[size];
is.read(bzp);
out.write(bzp);
} catch (Exception e) {
System.out.println("Wirte image error: " + e.toString());
}
}
rs.close();
} catch (Exception e) {
System.out.println("Unable to Close Statment" + e.toString());
}
}
try {
dispStmt.close();
} catch (Exception e) {
System.out.println("Close Statement Error: " + e.toString());
}
out.close();
}
--------------------------------------------------------------------------------
再附一个:
从库中读图片显示到页面上的主要源码
<%@ page contentType="text/html;charset=iso8859_1"%>
<%@ page import="java.sql.ResultSet"%>
<jsp:useBean id="query" class="pub.MakeDB"/>
<%
String sql = "select * from images";
ResultSet rs = query.executeQuery(sql);
rs.next();
InputStream in = rs.getBinaryStream("image");
ServletOutputStream sos = response.getOutputStream();
int len = 0;
byte[] b = new byte[1024];
response.reset();
response.setContentType("image/gif");
while((len = in.read(b)) > 0)
sos.write(b,0,len);
in.close();
sos.close();
query.cls();
%>
如果是写到文件只要把sos
定义为DataOutputStream sos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("/a.gif")));
⑤ 手机c语言编程软件哪个好
1:C4droid中文版
C4droid中文版可以说是款Android设备上的最强的 C/C++ IDE,支持多种图形库: SDL、SDL2 (需安装sdl plugin for c4droid)、QT(需安装CuteLoadear)等,还支持导出APK!