2013-04-23 32 views
0

我想要的不是正常的fopen()函數。我想打開圖像,如雙擊圖像,然後在imageViewer中打開圖像。我想打開它。如何從C程序打開bmp圖像文件

有沒有通過C代碼做到這一點的方法?所以基本上我希望它彈出並查看自己。

我在Ubuntu上。

回答

2

這取決於imageViewer計劃。

如果imageViewer程序可以以這種方式在你的Linux命令行接口來調用

$imageViewer myfile.bmp 

然後在你的C代碼,你可以使用系統來打開文件,imageViewer程序

system("imageViewer myfile.bmp"); 
+0

這是C代碼行上面的一個系統調用嗎?這是系統調用的工作原理嗎?即調用你想打開的應用程序+文件名打開? – Kraken 2013-04-23 10:11:49

+0

系統將只允許執行外部命令。所以如果你的文件可以用你的imageviewer程序通過linux命令打開,那麼你可以使用system – MOHAMED 2013-04-23 10:14:04

+0

system()是一個「系統調用」,但它與名稱「system」沒有任何關係。 http://en.wikipedia.org/wiki/System_call – 2013-04-23 11:30:27

1

問題可能是「如何調用外部程序」(例如參見Execute external program with specific parameters from windows c/c++ code)或如何使用特定的庫/框架來「讀取」bmp文件,打開gfx窗口並在窗口上「映射」圖像;在Ubuntu上(使用GNOME?),你可以輕鬆地完成(並且超越簡單的BMP),諸如https://developer.gnome.org/gnome-devel-demos/stable/image-viewer.c.html

+0

儘管「從標題窗口」,該解決方案在其他地方工作,並有一個「Linux」的例子;關於SO的其他問題比我在飛行中挑選的那個更好地回答這個問題) – ShinTakezou 2013-04-23 10:16:57