jepg

2215 ワード

210開発ボード写真表示2 JPEGライブラリの移植2.1 JPEGライブラリのインストール(1)共有ディレクトリ下のjpegsrcを.v9a.tar.gzはあなたのlinuxの現在のユーザーのホームディレクトリにコピーします.(2)linuxの下で端末を開き、現在のユーザーのホームディレクトリに入り、tar xvf jpegsrcというコマンドを実行します.v9a.tar.gz cd jpeg-9 a/(3)jpegソースを構成する./configure –host=arm-linux –prefix=/home/gec/3rdlib
ここで-hostは、最終的に生成されたjpegライブラリの実行ターゲットプラットフォームを表します.-prefixはjpegライブラリのインストールディレクトリを表し、-hostと-prefixがない場合はデフォルトでx 86+linuxプラットフォーム上のjpegライブラリを生成します.もちろん、x 86+linux上のjpegライブラリを生成することもできます.
(4)jpeg makeのコンパイル(5)jpeg make installのインストール(6)インストール後の成果cd~/3 rdlib treeを観察できる
コンパイル:arm-linux-gcc-o digitalPhoto main.c-I/home/gec/3 rdlib/include/-L/home/gec/3 rdlib/lib/-ljpegコンパイル後digitalPhoto実行ファイルを生成し、開発ボードにダウンロードし、画像をフォルダの下に置いて実行:./digitalPhoto audi.jpg
注意:UBUUTUNの/3 rdlib/lib/libjpeg.so.9開発ボード/lib/int mainにコピー(int argc,char*argv[]){FILE*fp;int fd;unsigned char*pLineColor;unsigned int*pFrameBuffer;int image_width,image_height;//jpeg解凍対象struct jpeg_decompress_struct dinfo;//jpegのエラー情報をプロセスの標準エラーデバイスに関連付け、jpegライブラリのエラー情報struct jpeg_error_mgrerに関心がない場合を除き、dinfo.err=jpeg_st_error(&err); //jpeg解凍オブジェクトjpeg_を作成するcreate_decompress(&dinfo);
if(argc<2)
{
    printf("Usage:digitalPhoto  jpeg_filename.
"); return -1; } fp=fopen(argv[1],"r"); if(fp==NULL) { perror("Cannot open jpeg_file:"); goto exit; }

//jpeg解凍オブジェクトとjpegファイルストリームを関連付けると、jpeg解凍オブジェクトがファイルストリームからデータjpeg_を取得することを意味します.stdio_src(&dinfo,fp); //ヘッダ情報の取得jpeg_read_header(&dinfo,TRUE); image_height=dinfo.image_height; image_width=dinfo.image_width; printf(“w=%d,h=%d,num=%d”,image_width,image_height,dinfo.num_components); //framebuffer fd=open('/dev/fb 0',O_RDWR)を開きます.pFrameBuffer=(unsigned int *)mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); //解凍開始jpeg_start_decompress(&dinfo); //jpeg行の色データを保存するバッファpLineColor=(unsigned char*)malloc(image_width*dinfo.num_components);jpegピクチャのデータを行単位で読み出し、while(dinfo.output_scanline)を処理する

include


include


include


include


include


include