调整图片大小来自PHP中的android应用程序
我们有一个android应用程序,我们希望通过在PHP中发布来自android应用程序的图像来保存2个输出图像调整图片大小来自PHP中的android应用程序,php,android,image,file-upload,Php,Android,Image,File Upload,我们有一个android应用程序,我们希望通过在PHP中发布来自android应用程序的图像来保存2个输出图像 我们的问题是没有指定中的图像类型,并且应用程序中任何类型的所有图像都带有.png扩展名。 正如我现在所说,要调整图像的大小,我们现在应该调整它的类型 那么,如何调整未知类型图像的大小并将其保存到文件中呢 我的代码: if (isset($_FILES["img1"])){ move_uploaded_file($_FILES["img1"]["tmp_name"] , "../
我们的问题是没有指定中的图像类型,并且应用程序中任何类型的所有图像都带有.png扩展名。 正如我现在所说,要调整图像的大小,我们现在应该调整它的类型
那么,如何调整未知类型图像的大小并将其保存到文件中呢 我的代码:
if (isset($_FILES["img1"])){
move_uploaded_file($_FILES["img1"]["tmp_name"] , "../../spl_img/".$gallery_id."-img1.png");
$address = "../../spl_img/".$gallery_id."-img1.png";
$resizeObj = new resize($address);
$resizeObj -> resizeImage(80, 'portrait');
$resizeObj -> saveImage("../../spl_img_thumb/".$gallery_id."-img1.png", 100);
当我想用jpg类型和png扩展名调整图像大小时收到的错误:
Warning: imagecreatetruecolor() expects parameter 2 to be long, string given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 76
Warning: imagecopyresampled() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 77
Warning: imagejpeg() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 217
Warning: imagedestroy() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 246
使用exif方法检查图像类型比在点后查看文件扩展名更准确。
可以重写类中的函数“openImage()”
private function openImage($file)
{
switch (exif_imagetype($file))
{
case IMAGETYPE_GIF:
$img = @imagecreatefromgif($file);
break;
case IMAGETYPE_JPEG:
$img = @imagecreatefromjpeg($file);
break;
case IMAGETYPE_PNG:
$img = @imagecreatefrompng($file);
break;
}
return $img;
}
不要忘记在php.ini文件中启用EXIF扩展名
在Windows上取消对以下行的注释:extension=php\u mbstring.dll
extension=php_exif.dll
更多信息:致命错误:在第43行的/home/porsojoy/public\u html/webservice/spl\u img/resize-class.php中调用未定义的函数exif\u imagetype(),我的php.ini中有这个部分:[exif];Exif UNICODE用户注释作为UCS-2BE/UCS-2LE处理,JIS作为JIS处理;有了mbstring支持,这将自动转换为编码;由相应的编码设置给出。当mbstring.internal_编码为空时;使用。对于解码设置,您可以区分motorola和;英特尔字节顺序。解码设置不能为空;exif.encode_unicode=ISO-8859-15 exif.decode_unicode_motorola=“UCS-2BE”exif.decode_unicode_intel=“UCS-2LE”;exif.encode\u jis=exif.decode\u jis\u motorola=jis exif.decode\u jis\u intel=jis似乎没有启用扩展。请检查文件(php_mbstring.dll和php_exif.dll)是否存在于php根目录下的“ext”文件夹中。这是我的php.ini代码:;可加载扩展(模块)所在的目录。extension_dir=“/usr/local/lib/php/extensions/no-debug-non-zts-20090626”zend_extension=“/usr/local/IonCube/IonCube_loader_lin_5.3.so”zend_extension=“/usr/local/zend/lib/Guard-5.5.0/php-5.3.x/ZendGuardLoader.so”extension=“php_mbstring.dll”extension=“php_exif.dll”extension=“eaccelerator.so”extension=”“pdo.so”extension=“pdo_sqlite.so”extension=“sqlite.so”extension=“pdo_mysql.so”extension=“ixed.5.3.lin”