如何将字符串转换为图像(Java)

如何将字符串转换为图像(Java),java,string,image,Java,String,Image,我对我的申请有一个详细的问题。 -我有一个java servlet从mms网关(MM7协议)接收数据 我将inputstream(图像内容、消息内容)转换为字符串 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); //String orgin = new String(byteArrayOutputStream.toByteArray(),"UTF-8"); String orgin = Stre

我对我的申请有一个详细的问题。 -我有一个java servlet从mms网关(MM7协议)接收数据 我将inputstream(图像内容、消息内容)转换为字符串

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//String orgin = new String(byteArrayOutputStream.toByteArray(),"UTF-8");
String orgin = Streams.asString(request.getInputStream(), "ISO-8859-1");
然后,我将orgin作为图像内容的子字符串,并将其转换为base64并保存到图像文件 但我转换为base64的字符串无法保存到图像,因为出现此错误

not a jpeg file 
我打印出的字符串base64不以/9j开头,这意味着不是jpg格式

请给我一个建议或例子

最佳要求

列昂努布努布


对不起我的英语:)

我想,这可能会有帮助:

这至少是你问题的一部分:

String orgin = Streams.asString(request.getInputStream(), "ISO-8859-1");
您不应该首先将其转换为字符串。这是二进制数据,对吗?因此,将其作为二进制数据从流中读取


现在听起来你基本上想要得到二进制数据的独立“块”——但是将数据转换成字符串格式开始是不合适的,除非二进制数据真的是编码文本。

图像编码非常简单

编码源:

    Bitmap bm = BitmapFactory.decodeFile(picturePath);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] byteArray = baos.toByteArray();

            encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT);

    ImageView imageView = (ImageView) findViewById(R.id.imageView1);
            imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    byte[] decodedString;
        decodedString = Base64.decode(picture, Base64.DEFAULT);

        imageView1.setImageBitmap( BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length));
解码源:

    Bitmap bm = BitmapFactory.decodeFile(picturePath);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] byteArray = baos.toByteArray();

            encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT);

    ImageView imageView = (ImageView) findViewById(R.id.imageView1);
            imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    byte[] decodedString;
        decodedString = Base64.decode(picture, Base64.DEFAULT);

        imageView1.setImageBitmap( BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length));

使用下面的代码将字符串转换为图像 这里的“origin”是一个字符串

import org.apache.commons.codec.binary.Base64;


byte[] imgByteArray = Base64.decodeBase64(origin);
FileOutputStream imgOutFile = new FileOutputStream("C:\\Workspaces\\String_To_Image.jpg");
imgOutFile.write(imgByteArray);
imgOutFile.close();