图像可以';无法在android中保存validable
我正在使用PHP将图像保存到mysql数据库。图像已到达保存文件和数据库,但格式无效。无法打开。如何以正确的方法存储图像。告诉我一些方法。这是我的密码图像可以';无法在android中保存validable,android,Android,我正在使用PHP将图像保存到mysql数据库。图像已到达保存文件和数据库,但格式无效。无法打开。如何以正确的方法存储图像。告诉我一些方法。这是我的密码 Bitmap bm = ShrinkBitmap(picturePath, 300, 300); resizedbitmap = Bitmap.createScaledBitmap(bm, 100, 100, true); ByteArrayOutputStream baos=new Byte
Bitmap bm = ShrinkBitmap(picturePath, 300, 300);
resizedbitmap = Bitmap.createScaledBitmap(bm, 100, 100, true);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
resizedbitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
byte [] arr=baos.toByteArray();
imageSave = Base64.encodeToString(arr, Base64.DEFAULT);
img_Photo.setImageBitmap(resizedbitmap);
Bitmap ShrinkBitmap(String file, int width, int height){
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);
if (heightRatio > 1 || widthRatio > 1)
{
if (heightRatio > widthRatio)
{
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
bmpFactoryOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
return bitmap;
}
postParameters.add(new BasicNameValuePair("photo", imageSave));
编辑:这里是PHP
if(isset($_POST["photo"]) && !is_null($_POST["photo"]))
{
$data = mysql_real_escape_string($_POST["photo"]);
//create folder
if(!file_exists('User_Photo/'))
{
mkdir('User_Photo/', 0777, true);
}
//upload image
define('UPLOAD_DIR', 'User_Photo/');
$img = $data;
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . $str . '.png';
$query .= " , v_photo";
$value .= " , '".$file."'";
}
else
{
$flag = true;
}
将图像保存为base64编码字符串。你怎么知道它们是无效的,你能给我们看一下解码码吗?我已经发布了解码文件。收缩位图(picturePath,300300);如果我正确理解了您的代码,您可以在Android应用程序中打开一个图像,调用
ShrinkBitmap
,然后将其发布到服务器。您如何知道它们的格式无效?我猜你会在PHP的网页上显示它们,这是我要求的代码。图像到达保存的文件,但当我打开图像时,它只显示黑色图像。我没有保存黑色图像,但我不知道他们为什么更改黑色图像。后参数。添加(新的BasicNameValuePair(“photo”,imageSave));这是保存PHP的部分。