不过最好还是去找一份家教的工作,然后用赚来的钱,去学点技术;其他你感兴趣的也可以,比如编程什么的;
四年下来,你就可以积累足够的技术和经验~ 将来出去工作什么的都会很轻松的;
哎~ 我快毕业了,有些小痛苦,虽然也看了很多书,但是没有培养起来一些比较核心的技术,现在挺难受的~
另外有个建议,除了四六级,计算机二级,其余的证都不要去考~
纯粹浪费时间和金钱,出去没有一家HR会看这些
// 我只是简单的看了一下,难免有错,请见谅。希望能帮助您,如果有问题请回复。// 祝你学习顺利
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <malloc.h>
# include <ctype.h>
# include <process.h>
# include <windows.h>
// 上面这些是头文件,include之后可以使用其中定义的函数和变量,比如Include <string.h>之后就可以使用string这个类了。
int bitmapToGray(char *OriginalBMP,char *ResultBMP)//声明了一个函数将bitmap转换为灰度图像,括号里面的是输入的变量。这个相当于告诉编译器,后面会有一个函数叫这个名字,但没有具体定义函数内容。
int main() // 这个main函数是整个程序的入口,进入入口之后,程序会调用bitmapToGray这个函数。
{
bitmapToGray("C:\\Users\\Sky\\Desktop\\LONGJIANG.bmp",
"C:\\Users\\Sky\\Desktop\\LONGJIANG2.bmp")
return 0
}
int bitmapToGray(char *OriginalBMP,char *ResultBMP) // 这里是bitmapToGray函数的具体定义,相当于把这个函数具体做什么一步一步写出来。
{
unsigned char *BMP24Image,*BMP8Image
BITMAPFILEHEADER fh
BITMAPINFOHEADER ih
RGBQUAD Color[256]
BYTE CTemp[3] //颜色分量
int Row,Col,nCol
int i,j,k
FILE *f,*p
//上面的都是声明变量,这些变量的申请速度很快,因为他们在栈上,这个空间一般有1M,读写速度都比较快,使用起来安全。
BMP24Image=(unsigned char*)calloc(2000*2000,sizeof(unsigned char))
BMP8Image=(unsigned char*)calloc(1000*1000,sizeof(unsigned char))
//上面是申请空间,这个空间是在堆上面,这个堆基本就是内存,和虚拟内存了,很大,但是会比较慢,而且管理起来比较复杂。
if((f=fopen(OriginalBMP,"rb"))==NULL)
{
printf("open %s error,please check\n")
return 0
}
fread(&fh,sizeof(BITMAPFILEHEADER),1,f)
if(fh.bfType!='MB')
{
printf("This is not a BMP picture\n")
return 0
}
fh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+sizeof(RGBQUAD)*256
fread(&ih,sizeof(BITMAPINFOHEADER),1,f)
Row=ih.biHeight
Col=ih.biWidth
Col=Col/4*4
nCol=Col*4/4*4 //扫描宽度
ih.biBitCount=8 //改变像素位数大小,8位,256色
fread(BMP24Image,sizeof(unsigned char),Row*Col,f)
// 上面就是读取BMP图像
for(i=0i<Rowi++)
{ for(j=0j<Colj++)
{
if(BMP24Image[i*Col+j]>128)
BMP8Image[i*Col+j]=255
else BMP8Image[i*Col+j]=100
// 上面是对BMP进行二值化处理
for(k=0k<3k++)
{
CTemp[k]=BMP24Image[i*nCol+j*3+k]
}
BMP8Image[i*Col+j]=CTemp[2]*0.299+CTemp[1]*0.587+CTemp[0]*0.114//转化公式
}
}
// 上面大概是空间转换YUV到RGB
fclose(f)
if((p=fopen(ResultBMP,"wb"))==NULL)
{
printf("open savefile error\n")
return 0
}
// 准备进行写入操作
for(i=0i<256i++)//调色板
{
Color[i].rgbBlue=i
Color[i].rgbGreen=i
Color[i].rgbRed=i
Color[i].rgbReserved=0
}
// 灰度图是从0~255,上面大概是进行灰度处理
fwrite(&fh,sizeof(BITMAPFILEHEADER),1,p)
fwrite(&ih,sizeof(BITMAPINFOHEADER),1,p)
fwrite(Color,sizeof(RGBQUAD),256,p)
fwrite(BMP8Image,sizeof(unsigned char),Row*Col,p)
fclose(p)
// 上面进行写入操作,并且关闭
return 0
}