保存在mysql数据库中的图像更改其大小

时间:2016-03-20 20:10:40

标签: php android

我去谷歌图片,我选择了一个图像并将其保存到我的电脑。我去模拟器并转到谷歌图像并将相同的图像保存到模拟器Genymotion的画廊。

使用这个php脚本,我使用form.html将此图像保存到mysql数据库。

<?php
echo ini_get( 'file_uploads' );

if(!isset($_POST['submit'])){
 echo '<p>Please Select Image to Upload</p>';
 }
else
 {
 try {
 upload();
 }
 catch(Exception $e)
 {
 echo '<h4>'.$e->getMessage().'</h4>';
 }
 }

function upload(){
 $imgfp = fopen($_FILES['photo']['tmp_name'], 'rb');
 print_r($_FILES);
	
 $dbh = new PDO("mysql:host=localhost;dbname=othmane", 'root', '');

 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 $stmt = $dbh->prepare("INSERT INTO images (image,image_type) VALUES (?,'php')");

 $stmt->bindParam(1, $imgfp, PDO::PARAM_LOB);

 $stmt->execute();
}
?>

图像保存在mysql中,其大小为: 30 Kio

现在我尝试从相同的链接(谷歌图像)保存相同的图像,我尝试通过Android应用程序保存它,这是PHP脚本,它是mysql和Android应用程序之间的中介:

<?php
	if($_SERVER['REQUEST_METHOD']=='POST'){
		
		$image = $_POST['image'];
		
		$con=mysqli_connect("localhost","root","","othmane")or die(mysqli_error($con));
		
		$sql = "INSERT INTO images (image,image_type) VALUES (?,'android')";
		
		$stmt = mysqli_prepare($con,$sql);
		
		mysqli_stmt_bind_param($stmt,"s",$image);
		mysqli_stmt_execute($stmt);
		
		$check = mysqli_stmt_affected_rows($stmt);
		
		if($check == 1){
			echo "Image Uploaded Successfully";
		}else{
			echo "Error Uploading Image";
		}
		mysqli_close($con);
	}else{
		echo "Error";
	}
	?>

在Android应用程序中,我使用base64将图像编码为字符串:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    return encodedImage;

图片保存在mysql中,现在它的大小是 90Kio !为什么?我不希望图像在我的数据库中占用大量内存。如何避免

0 个答案:

没有答案