當前位置:首頁 » 編程語言 » 如何用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語言編寫一個程序~~能不能編寫的時候將圖片或視頻類的文件編寫進去~運行的時候向磁碟釋放出來~求演算法

將你的圖片作為文件,在源代碼里,讀取這個文件並寫到磁碟。