如果我用相机拍摄照片,它会存储设备的方向/角度,因此当我使用良好的应用程序在PC上查看图像时,它会自动旋转为0。
但是,当我上传到网站时,它会显示原始角度,因此图像看起来不太好。
如何使用PHP进行检测并旋转图像,并从其元信息中清除此角度标志。
为此,必须从JPEG文件中读取EXIF信息。您可以使用exif
PHP扩展名或使用PEL
。
基本上,您必须读取Orientation
文件中的标志。这是一个使用exif
PHP扩展并WideImage
用于图像处理的示例。
<?php
$exif = exif_read_data($filename);
$ort = $exif['Orientation'];
$image = WideImage::load($filename);
// GD doesn't support EXIF, so all information is removed.
$image->exifOrient($ort)->saveToFile($filename);
class WideImage_Operation_ExifOrient
{
/**
* Rotates and mirrors and image properly based on current orientation value
*
* @param WideImage_Image $img
* @param int $orientation
* @return WideImage_Image
*/
function execute($img, $orientation)
{
switch ($orientation) {
case 2:
return $img->mirror();
break;
case 3:
return $img->rotate(180);
break;
case 4:
return $img->rotate(180)->mirror();
break;
case 5:
return $img->rotate(90)->mirror();
break;
case 6:
return $img->rotate(90);
break;
case 7:
return $img->rotate(-90)->mirror();
break;
case 8:
return $img->rotate(-90);
break;
default: return $img->copy();
}
}
}
我正在开发一个web应用程序,它可以浏览和拍摄本地照片,我还想通过相机拍摄图像。我使用下面的代码,我可以捕捉设备摄像头。 现在,我想获得图像和onchangeevent,转换为base64,并希望在该页面中显示。 好心帮我伙计们!
可使用前端相机或背面相机拍摄照片。 A ) (显示模式) 轻触图标可切换为显示模式。 B ) (位置数据)/(切换相机)/(切换图像大小) 启用位置数据的使用设定即可显示(位置数据)。轻触图标可使用Wi-Fi、GPS*、手机基地台*的信息取得位置数据。取得后会显示(已取得位置数据),拍摄照片时会同时记录位置数据。 * 仅限3G/Wi-Fi机种 C ) (快门) 轻触图标可拍摄照片。 D ) 已拍摄
比较很简单:我用使用CameraManager的自定义相机拍照。然后,我用默认的Galaxy Note 5相机拍摄同一张照片。CameraManager可用的最大尺寸是1836年的3264,所以我使用它,并将三星相机的分辨率设置为相同的分辨率。结果 注5:我可以在照片中看到细节 相机经理:我看不到细节。图像质量很低。 然后我尝试将CameraManager照片设置为 仍然没有变化。嗯,只有一个变化
我试图控制Android相机在肖像应用程序中拍照,但是当我保存照片时,它是在风景中。我已经旋转图像90级与方法,但不工作。 然后我找到了这篇文章,但是是(未定义)。如果我抓住这个值并应用旋转值,也不起作用。 我如何在肖像中拍摄照片,并以良好的方向保存它?
问题内容: 我需要在活动中获得并显示照片库中最近拍摄的3张照片,而无需任何点击。 完成此步骤后,滚动时,我应该以3 x 3的方式拍摄其他照片。 您知道快速执行此操作的正确方法吗?谢谢。 问题答案: 这是使用适用于iOS 8+设备的框架的解决方案:
在我的应用程序中,用户从相机捕获图像或从图库中选择图像,然后将其转换为pdf并上载到服务器,现在我的问题是,从相机捕获的图像在某些设备上旋转,我有代码尝试解决此问题,但它不起作用 任何建议或问题在哪里,没有错误代码或任何东西