Java android中longblob的位图
我有一些图像以Java android中longblob的位图,java,android,mysql,database,bitmap,Java,Android,Mysql,Database,Bitmap,我有一些图像以longblobs的形式存储在远程MySQL数据库中,我需要为我的Android应用程序检索它们,并显示为位图。我有一个PHP脚本设置来解析Android应用程序中的SQL查询 我尝试过的: 我尝试获取longblob字段下面的字符串,然后对其使用getBytes()。但很明显,它不起作用。如果显示字符串,将显示大量字符(可读和不可读)。因此,问题在于编码或从字符串转换为字节[](我认为) 我需要什么:有没有办法从存储在MySQL数据库中的远程longblob创建Bitmap,我使
longblob
s的形式存储在远程MySQL数据库中,我需要为我的Android应用程序检索它们,并显示为位图
。我有一个PHP脚本设置来解析Android应用程序中的SQL查询
我尝试过的:
我尝试获取longblob
字段下面的字符串,然后对其使用getBytes()
。但很明显,它不起作用。如果显示字符串,将显示大量字符(可读和不可读)。因此,问题在于编码或从字符串转换为字节[]
(我认为)
我需要什么:有没有办法从存储在MySQL
数据库中的远程longblob
创建Bitmap
,我使用自定义PHP脚本从Android连接数据库?我完全确定脚本工作正常,我的代码100%工作到变量httpEntity
。我甚至可以得到字符串及其正确值。唯一的问题是,我无法获得位图
谢谢。越简单越好:)PHP可以从数据库输出blob
header('Content-Type: image/png');
echo $result['blob'];
当您使用web浏览器请求此脚本时,您将看到一个PNG图像。然后是安卓部分
InputStream in = new URL("http://img.io/read.php").openStream();
Bitmap bmp = BitmapFactory.decodeStream(in);
in.close();
这里不需要通过字符串。。。Java中的字符串不仅仅是字节数组。它们具有语义,因此字节数组总是与编码方案(默认为UTF-16LE)结合使用。非常感谢您的回答。我认为它会像预期的那样工作,但为了确保,在选择这个作为正确答案之前,我会检查它。再次感谢:)+1答案:)请问您是否真的需要将图像存储在DB中?正如你所看到的,这有点低效。如果它是一个文件,Apache可以简单地为它提供服务,但这样您就必须连接到DB服务器,让它为您读取文件系统。考虑这个建议;你有这方面的例子吗?但是,我仍然需要上面的代码来读取位图
,对吗?什么示例?用PHP读取数据库?从输入流
创建位图
?这不是一件很复杂的测试;)不,我的意思是“…Apache可以简单地为它服务…连接到DB服务器,让它为您读取文件系统…”部分。
InputStream in = new URL("http://img.io/read.php").openStream();
Bitmap bmp = BitmapFactory.decodeStream(in);
in.close();