马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。try{
BufferedImagebi=null;
if(isURL==true){
bi=ImageIO.read(newURL(inFileName));
}
else{
bi=ImageIO.read(newFile(inFileName));
}
int[]rgbArray=newint[101*29];//我测试用的图像文件象素值宽度是101宽,29长的
bi.getRGB(0,0,101,29,rgbArray,0,101);
for(inti=0;i<101*29;i++){//我做的只是双色图,以是这里查出每个象素是1(黑)仍是0(白)
if((rgbArray[i]&0xffffff)==0x000000)
rgbArray[i]=0;
else
rgbArray[i]=1;
}
//以下是BMP文件格局的界说,加倍详细的申明能够到http://www.wotsit.org找
int[]identifier={B,M};
int[]fileSize={0x0E,0x02,0x00,0x00};
int[]reserved={0x00,0x00,0x00,0x00};
int[]bitmapDataOffset={0x3E,0x00,0x00,0x00};
int[]bitmapHeaderSize={0x28,0x00,0x00,0x00};
int[]width={0x65,0x00,0x00,0x00};
int[]height={0x1D,0x00,0x00,0x00};
int[]planes={0x01,0x00};
int[]bitsPerPixel={0x01,0x00};
int[]compression={0x00,0x00,0x00,0x00};
int[]bitmapDataSize={0xD0,0x01,0x00,0x00};
int[]hResolution={0x00,0x00,0x00,0x00};
int[]vResolution={0x00,0x00,0x00,0x00};
int[]colors={0x00,0x00,0x00,0x00};
int[]importantColors={0x00,0x00,0x00,0x00};
int[]palette={0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00};
//记着bmp没一个扫描行都要扩大到下一个4bytes的倍数,如101就要酿成128,扩大的byte补0便可
int[]bitmapData=newint[(101+27)*29/8];
intn=0;
for(inti=0;i<29;i++){//BMP格局是从最初一行入手下手scan的
for(intj=1;j<=101;j++){
if(rgbArray[(28-i)*101+j-1]==1){
bitmapData[n]=bitmapData[n]|(1<<(8-j%8)%8);
}
if(j%8==0){
n++;
}
if(j==101){
n+=4;
}
}
}
RandomAccessFileo=newRandomAccessFile(outFileName,"rw");
o.setLength(0);
for(inti=0;i<identifier.length;i++){
o.write(identifier[i]);
}
for(inti=0;i<fileSize.length;i++){
o.write(fileSize[i]);
}
for(inti=0;i<reserved.length;i++){
o.write(reserved[i]);
}
for(inti=0;i<bitmapDataOffset.length;i++){
o.write(bitmapDataOffset[i]);
}
for(inti=0;i<bitmapHeaderSize.length;i++){
o.write(bitmapHeaderSize[i]);
}
for(inti=0;i<width.length;i++){
o.write(width[i]);
}
for(inti=0;i<height.length;i++){
o.write(height[i]);
}
for(inti=0;i<planes.length;i++){
o.write(planes[i]);
}
for(inti=0;i<bitsPerPixel.length;i++){
o.write(bitsPerPixel[i]);
}
for(inti=0;i<compression.length;i++){
o.write(compression[i]);
}
for(inti=0;i<bitmapDataSize.length;i++){
o.write(bitmapDataSize[i]);
}
for(inti=0;i<hResolution.length;i++){
o.write(hResolution[i]);
}
for(inti=0;i<vResolution.length;i++){
o.write(vResolution[i]);
}
for(inti=0;i<colors.length;i++){
o.write(colors[i]);
}
for(inti=0;i<importantColors.length;i++){
o.write(importantColors[i]);
}
for(inti=0;i<palette.length;i++){
o.write(palette[i]);
}
for(inti=0;i<bitmapData.length;i++){
o.write(bitmapData[i]);
}
o.close();
}
catch(MalformedURLExceptione){
e.printStackTrace();
}
catch(IOExceptione){
e.printStackTrace();
}
假如有甚么不分明的,请接洽我flcc@263.sina.com,我将尽我所能的匡助你。
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之! |