扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
public synchronized void connHttp(){
while(true){
System.out.println("httpconn wait now");
if((midplet.getIsSending())){
System.out.println("search");
try{
con=(HttpConnection)Connector.open(URL);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("If-Modified-Since",
"29 Oct 1999 19:43:31 GMT");
con.setRequestProperty("User-Agent",
"Profile/MIDP-2.0 Configuration/CLDC-1.0");
con.setRequestProperty("Content-Language", "en-US");
os=new DataOutputStream(con.openOutputStream());
int[] rgbArg=new int[100*100];
midplet.getImage().getRGB(rgbArg,0,100,0,0,100,100);
byte[] bytes=intTobyte(rgbArg);
os.write(bytes);
//for(int i=0;i<RGBARG.LENGTH;I++){
//os.writeInt(rgbArg[i]);
//System.out.println(rgbArg[i]);
//}
os.flush();
}catch(Exception e){
System.out.println("conn err");
e.printStackTrace();
}finally{
if(os!=null){
try{
os.close();
midplet.setIsSending(false);
midplet.setIsSend(true);
}catch(IOException ioe){};
}
}
midplet.setIsSending(false);
midplet.setIsSend(true);
}
try{
wait();
}catch(Exception e){
System.out.println("wait exception");
e.printStackTrace();
}
}
}
public synchronized void wakeUP(){
notifyAll();
}
private byte[] intTobyte(int[] ints){
byte[] bytes=new byte[ints.length*4];
for(int i=0;i<INTS.LENGTH;I++){
bytes[i*4]=(byte)(0xff&(ints[i]>>>24));
bytes[i*4+1]=(byte)(0xff&(ints[i]>>>16));
bytes[i*4+2]=(byte)(0xff&(ints[i]>>>8));
bytes[i*4+3]=(byte)(0xff&(ints[i]>>>0));
if(i<100){
System.out.println(ints[i]);
}
}
return bytes;
}
客户端的,比上一次多了,一个方法intTobyte()通过这个方法,获得了一个byte类型的数组,直接发送,服务器端,在将这个byte数组还原成一个int数组
=========================================
private void createIamge(DataInputStream io,OutputStream out){
int width = 100;
int height = 100;
int[] rgb=new int[width*height];
try{
int[] bytes=new int[rgb.length*4];
//io.readu(bytes);
//rgb=byteToInt(bytes);
for(int i=0;i<BYTES.LENGTH;I++){
bytes[i]=io.readUnsignedByte();
}
byteToInt(bytes,rgb);
}catch(IOException ioe){ioe.printStackTrace();}
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
bi.setRGB(0,0,100,100,rgb,0,100);
bi.flush();
// encode:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
System.out.println("yeah");
try {
encoder.encode(bi);
}
catch(IOException ioe) {
ioe.printStackTrace();
}
}
private void byteToInt(int[] bytes,int[] rgb){
for(int i=0;i<RGB.LENGTH;I++){
rgb[i]=(
((bytes[i*4]&0xff)<<24)|
((bytes[i*4+1]&0xff)<<16)|
((bytes[i*4+2]&0xff)<<8)|
((bytes[i*4+3]&0xff)<<0));
//System.out.print(ints[i]+"\t"+(ints[i]<<8)+"\t");
if(i<100){
System.out.println(rgb[i]);
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者