KodExplorer/plugins/imageExif/app.php

69 lines
1.9 KiB
PHP
Executable File

<?php
class imageExifPlugin extends PluginBase{
function __construct(){
parent::__construct();
//扩展缺失提示
if( !function_exists('exif_read_data')){
$this->appPackage();
$this->packageData['configItem'] = array(
"sep001" => '<div class="alert alert-danger m-30">'.LNG('imageExif.Config.missLib').'</div>',
);
}
}
public function regiest(){
$this->hookRegiest(array(
'user.commonJs.insert' => 'imageExifPlugin.echoJs',
'share.image' => 'imageExifPlugin.imageCheck',
'explorer.image' => 'imageExifPlugin.imageCheck',
));
}
public function echoJs($st,$act){
if( !function_exists('exif_read_data')){
return;
}
//$this->echoFile('static/main.js');
}
public function getExif(){
$path = _DIR($this->in['path']);
$exif = @exif_read_data($path);
show_json($exif,!!$exif);
}
//根据Orientation 自动旋转图片
//http://blog.csdn.net/ouyangtianhan/article/details/29825885
//https://gxnotes.com/article/126807.html
//https://zhuanlan.zhihu.com/p/25216999
public function imageCheck(){
if( !function_exists('exif_read_data')){
return;
}
$path = _DIR($this->in['path']);
$exif = @exif_read_data($path);
if(!file_exists($path) || !$exif || !isset($exif['Orientation'])) return;
if( $exif['Orientation']< 3) return;
$img = ImageThumb::image($path);
if(!$img) return;
$ort = $exif['Orientation'];
if($ort == 5 || $ort == 6){
$img = imagerotate($img, 270, null);
}
if($ort == 3 || $ort == 4){
$img = imagerotate($img, 180, null);
}
if($ort == 7 || $ort == 8){
$img = imagerotate($img, 90, null);
}
if($ort == 4 || $ort == 5 || $ort == 7){
imageflip($img,IMG_FLIP_HORIZONTAL);
}
$ext = get_path_ext($path);
$imagefun = 'image'.($ext=='jpg'?'jpeg':$ext);
$res = $imagefun($img, $path);
imagedestroy($img);
//show_json($exif,$res);
}
}