『壹』 c語言怎麼輸出一張圖片
輸出到文件的話,按照指定圖片格式,寫入文件即可。
電腦型號:微星 GF63 Thin 9SC
系統版本:Microsoft Windows 10
文本文件
1、打開電腦上要讀取的文本文件。
『貳』 如何用c語言讀取圖片
#include
using namespace std;
#define Twoto1(i,j,w) i*w+j
void createimage(unsigned char *&img, int w, int h)
{img = new unsigned char[w*h];}
void delateimage(unsigned char*img)
{delete []img;}
void readimage(unsigned char*img, int w, int h, char *fname)
{
FILE *fp;
fopen_s(&fp,fname, "rb");
if (fp == NULL){ cout << "error" << endl; return; }
size_t result;
result=fread(img , sizeof(unsigned char), w*h, fp);
if (result != w*h)
{
cout << "Reading error" << endl;
return;
}
else
cout << "Reading Ok!" << endl;
fclose(fp);
}
void mobanjuanji(unsigned char image, unsigned char*image1, int w, int h, float moban[5][5])
{
for (int i = 0; i for (int j = 0; j if (iw - 3 || j>h - 3)
image1[Twoto1(i,j,w)] = 0;
else
{
float temp = 0;
for (int m = 0; m<5; m++)
for (int n = 0; n<5; n++)
{
temp += (image[Twoto1(i-2+m,j-2+n,w)] moban[m][n]);
}
if (temp>255) image1[Twoto1(i, j, w)] = 255;
else if (temp<0) image1[Twoto1(i, j, w)] = 0;
else image1[Twoto1(i, j, w)] = temp;
}
}
void saveimage(unsigned char *img, int w, int h, char *fname)
{
FILE *fp;
fopen_s(&fp, fname, "wb");
if (fp == NULL) { cout << "error" << endl; return; }
size_t result;
result = fwrite(img, sizeof(unsigned char), w*h, fp);
if (result != w*h)
{
cout << "Write error" << endl;
return;
}
else
cout << "Write Ok!" << endl;
fclose(fp);
}
void main()
{
unsigned char *img;
unsigned char *img1;
float moban[5][5] = { {0,0,0,0,0},{0, -1, 0, 1, 0 }, { 0, -2, 0, 2, 0 }, { 0, -1, 0, 1, 0 }, { 0,0,0,0,0 } };
//float moban[5][5] = { 0 };
int w = 512, h = 512;
createimage(img, w, h);
createimage(img1, w, h);
readimage(img, w, h, "E:ss.raw");
mobanjuanji(img, img1,w, h, moban);
saveimage(img, w, h, "E:ss_1.raw");
saveimage(img1, w, h, "E:ss_2.raw");
delateimage(img);
delateimage(img1);
}
(2)c語言圖片擴展閱讀
C語言實現一個圖片的讀出和寫入
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d==
",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}
『叄』 c語言中如何導入圖片
1、首先先在圖片取模軟體找到軟體快捷方式,點擊打開軟體。
『肆』 C語言輸出圖片
輸出BMP圖片的:
#include "stdlib.h"
#include "graphics.h"
#include "stdio.h"
#define WIDTH 120
#define HEIGHT 120
//用一個二維數組保存的圖片,這里圖片長高必須是4的倍數,不是4的倍數必須進行補齊,
//但是這裡面是沒有進行補位操作的,你也可以自己去看看24位bmp圖片的編碼格式,
//然後就知道該怎麼用了
void mian()
{
FILE *fp;
unsigned char bmp[16][200];
unsigned char bmp2[WIDTH][HEIGHT*3];
int i = 1,size1 = 0,size2 = 0,size0 = 0;
int j = 0;
if((fp = fopen("G:\\new\\Boy5.bmp","rb")) == NULL)//打開圖片
exit(0);
i = 0;
fseek(fp,54L,0);//BMP圖片陣列是從第54位開始
//#########讀入圖片陣列到數組中##########
while(i < WIDTH*HEIGHT*3)
{
*(bmp2[0]+i) = fgetc(fp);
i++;
}
fclose(fp);
initgraph(700, 700); // 打開圖形窗口,這里這個函數我之前是在VC下編譯的,用了一個網上的繪圖庫,與TC的打開圖形界面函數有所差別,改掉就可以了
//####################################輸出圖片,這里是打點的方式在圖形界面輸出,
for(i = 0;i < (WIDTH-1);)
{
for(j =0;j < (HEIGHT-1)*3 ;)
{
putpixel(50+(j/3),600-(i/1),RGB((int)bmp2[i][j+2],(int)bmp2[i][j+3],(int)bmp2[i][j+4]));//輸出像素點
j+=3;
}
i++;
}
getchar();
closegraph(); // 關閉圖形窗口
}
『伍』 C語言怎麼處理圖片
想操作的,主要是操作像素點。根據矩陣位置可以做局部數據的調整
『陸』 c語言如何調用圖片
直接調用並顯示JPG BMP等格式圖片的函數好像沒有,要自己編寫。
首先要弄清楚圖片格式的編碼方式,然後設置解析度,可以顯示出來。
void far getimage(int left,int top,int right,int bottom,void far *buf)
說明:把屏幕圖形部分拷貝到由BUF所指向的內在區域,左上角和右下角圖標。用函數IMAGESIZE()來確定存儲圖像所需位元組數。用GETIMAGE()存儲的圖像可以用PUTIMAGTE()函數寫到屏幕上。
『柒』 c語言如圖片
初始化:f1 = 0 , f2 = 1;
for循環,i=3 開始循環,到i=5,那麼就是循環了3次;
for循環體里頭的內容,需要計算三次:
1、f = f1 + f 2 -- 計算f值;
2、f1 = f2 ; -- f1重新賦值 為f2;
3、 f2 = f; -- f2重新賦值為f;
4、print(f) ; -- 循環3次就輸出三次;
輸出結果應該是: 1 2 3
『捌』 用c語言如何讀取和保存jpg圖片文件
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d== ",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}
(8)c語言圖片擴展閱讀:
c語言讀取TXT文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE]; /*緩沖區*/
FILE *fp; /*文件指針*/
int len; /*行字元個數*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '