当前位置:首页 » 编程语言 » 如何用c语言将图片成视频
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何用c语言将图片成视频

发布时间: 2022-06-27 19:09:33

❶ 如何用c语言编写有图形动画类的程序

C做图形很不好使,效果也次。建议用turbo c , 它有个graphic.h 头文件 ,声明了很多图形函数,可以直接用,具体用法查资料慢慢看吧。 我给你一个例程吧(用turbo c 编译) :

#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define N 200
int i,key;
int score=0;/*得分*/
int gamespeed=50000;/*游戏速度自己调整*/
struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake
{
int x[N];
int y[N];
int node;/*蛇的节数*/
int direction;/*蛇移动方向*/
int life;/* 蛇的生命,0活着,1死亡*/
}snake;
void Init(void);/*图形驱动*/
void Close(void);/*图形结束*/
void DrawK(void);/*开始画面*/
void GameOver(void);/*结束游戏*/
void GamePlay(void);/*玩游戏具体过程*/
void PrScore(void);/*输出成绩*/
/*主函数*/
void main(void)
{
Init();/*图形驱动*/
DrawK();/*开始画面*/
GamePlay();/*玩游戏具体过程*/
Close();/*图形结束*/
}
/*图形驱动*/
void Init(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
cleardevice();
}
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/
void DrawK(void)
{
/*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/
{
rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /*左边*/
rectangle(601,i,610,i+10);/*右边*/
}
}
/*玩游戏具体过程*/
void GamePlay(void)
{
randomize();/*随机数发生器*/
food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/
snake.life=0;/*活着*/
snake.direction=1;/*方向往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*节数*/
PrScore();/*输出得分*/
while(1)/*可以重复玩游戏,压ESC键结束*/
{
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/
{
if(food.yes==1)/*需要出现新食物*/
{
food.x=rand()%400+60;
food.y=rand()%350+60;

while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*画面上有食物了*/
}
if(food.yes==0)/*画面上有食物了就要显示*/
{
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}

for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
switch(snake.direction)
{
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break;
}

for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();/*显示失败*/
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到墙壁*/
{
GameOver();/*本次游戏结束*/
snake.life=1; /*蛇死*/
}
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/
{
setcolor(0);/*把画面上的食物东西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20;
/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/
snake.node++;/*蛇的身体长一节*/
food.yes=1;/*画面上需要出现新的食物*/
score+=10;
PrScore();/*输出新得分*/
}
setcolor(4);/*画出蛇*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10);
delay(gamespeed);
setcolor(0);/*用黑色去除蛇的的最后一节*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
} /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循环*/
break;
key=bioskey(0);/*接收按键*/
if(key==ESC)/*按ESC键退出*/
break;
else
if(key==UP&&snake.direction!=4)
/*判断是否往相反的方向移动*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}/*endwhile(1)*/
}
/*游戏结束*/
void GameOver(void)
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();
}
/*输出成绩*/
void PrScore(void)
{
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);
}
/*图形结束*/
void Close(void)
{
getch();
closegraph();
}

❷ 怎么用C语言编程实现一个简单的动画

1.可以考虑用Turbo C的绘图函数(附加graphic.h库)或者用opengl+glut等来实现。2.前者一般就是纯粹的画点画线。网上也能找到教程。3.主要说一下后者。可以导入图片,并且二维、三维动画都可以做,甚至是用来开发游戏。后者可以用vc6.0或者vs2005来开发。跨平台。参考教程: http://www.owlei.com/DancingWind/看你的描述要做比较偏数学的东西,那你自己得弄明白如何去实现绘制算法。要实现的动画本身而搭的基本框架不会很复杂的,可能100行代码都不用。4.另外还有opencv、GDI之类的可能更适合二维图像处理库,但我自己不是很了解了,你也可以查一查用哪种绘图库比较适合你。

❸ 怎么用c语言编程,播放一段视频啊能给我发发你的代码吗

#include <stdlib.h>
int main()
{
char filename[20];
printf("请输入要播放的视频的路径:");
scanf("%s",filename);
system(filename);
}
如何输入你想打开的视频的路径及名称就可以了,比如 C盘abc文件夹中的视频"黄飞鸿.avi",你可以输入 c:\abc\黄飞鸿.avi 后回车即可

❹ 如何用C语言编写一个视频播放器

  1. 视频播放器是一种解码器。

    解码器是对已编码的数字视频进行还原解码操作的程序(视频播放器)或设备。比如系统安装了real编码器那就能将其他格式文件转换成rm或rmvb格式,如果安装了real解码器那就能播放rm或rmvb格式文件。

  2. 这已经不是简单C语言能够编写出来的,它的核心是解码编码的算法。

    1,如果你只是想用某些功能,不要自己编了。找一个吧。
    2,非要自己编的话,要站在巨人的肩膀上。很多种编码都有开源的解码器了。可以利用他们。或者利用开源的软件,在人家基础上开发。
    3,如果你认为你有希望改进压缩解压算法,得到更好的效果,更省地方,更有效的解压算法。那首先要做的是了解各种编码的压缩解压算法。创造一种更好的算法。

❺ 如何用C语言编程实现 把图片转换成有漫画效果的

先调用
图片库

把图片打开,存入内存里,然后把每个像素点的RGBV值改成想要的效果,
然后再写入文件。图片的操作可惜不能贴地址

❻ c语言程序怎么调用文件,例如调用电脑中的图片 ,视频等

java,c,c++在处理文件的时候都是大同小异,只不过c语言会更加底层一些。没经过任何封装。java封装了之后,就很丰富了。引申出很多流,字节流,字符流等。不同的文件,如果我们只关心读,写。那么操作都是一样的。比如一个图片,mp3等变成流了之后进行读写。但是如果我们关心的是打开。这个就不太一样了。因为“打开”这个词是站在用户层的角度来说的。打开文件需要关心文件的种类,也就是文件的格式。所以需要有一个打开对应格式文件的程序。比如打开照片可以用window照片查看器。底层的对文件的读写是不关心文件的种类的。因为所有的文件最终的最终都是二进制存储。以流的方式操作文件一般只有读写删。而楼主的意思确切的说,应该是想调用打开某种文件格式的程序。例如楼主可能想如何用c语言调用酷狗播放器,只需要传一个mp3路径就可以播放,如果用c语言调用图片查看器,只需要传一个图片地址就可以打开。

❼ 怎么用c语言往程序里插入视频

在程序里面插入视频可以用程序的一部分界面作为一个子窗口,然后在这个子窗口里面播放视频,子窗口可以是任意位置、任意大小。播放视频可以调用系统的ActiveX控件,比如Flash,这样播放代码就不需要特别复杂。
也可以编写一个单独的程序在一个单独的窗口播放视频,窗口可以居中显示,也可以显示在屏幕右下角。播放视频的程序作为子程序,用主程序来调用启动它,涉及到进程控制,也不是多么复杂,这种方式类似于客户端的各种弹窗广告。

❽ 诸位大神,我想用C语言编一个视频处理的软件,例如对视频图像变形,像哈哈镜一样,还有对声音变化,

这玩意不是一个人容易做出来的,时间,资金,人力都难。视频音频都得专业学习下。不是那么容易的。iPad上面是有开发库,很多接口丰富了。不是这个行业的,没法掌控。
你用C语言全部重新开发,不是一般的难,也很难坚持,效率也是问题。

windows用了10几年,都会使用啊,你说哪个人能完全单独实现?
想法是好的,难度超大,期待你的成功。

先找下音频的资料吧,看数据是怎么表达的,然后才能进行修改从而改变声音的频率幅度等。

❾ 用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语言编写一个程序~~能不能编写的时候将图片或视频类的文件编写进去~运行的时候向磁盘释放出来~求算法

将你的图片作为文件,在源代码里,读取这个文件并写到磁盘。