// Store the image
$file = $this->storeImage($file, $refType, $refTable, $refDest);
+// error_log(json_encode($file));
$return['files'][] = $file;
);
}
+ // Strip meta data off image - this prevents EXIF orientation shenanigans
+ $file['tmp_name'] = $this->stripImageMeta($file['tmp_name']);
+
// Get the desired file name and add a timestamp to it to ensure that it's unique
$fInfo = pathinfo($file['name']);
/*
* Strip an image of all its metadata using either imagemagick or GD
*
- * None of the metadata will be preserved. This function can be refined with settings
- * to preserve certain metadata fields. In case of GD, image type is determined, but
- * if it is not jpg, png or bmp, no stripping will take place.
+ * None of the metadata will be preserved. This function can be refined further
+ * with settings to preserve certain metadata fields if desired at a later point.
+ *
+ * In case of Image Magick/Imagick being installed, a new Imagick object is created
+ * that rewrites the original image.
+ *
+ * In case of GD, image type is determined to use the appropriate imagecreatfrom<type>
+ * function. If it is not either JPG, PNG or BMP, no stripping will take place.
+ *
+ * If neither extension is found, the image is returned unchanged..
*
* @param $imageName string Image resource to be processed
*
} else if (extension_loaded('gd') && function_exists('gd_info')) {
$image_type = exif_imagetype($imageName);
+ $newImageQuality = 100;
switch ($image_type) {
- case "IMAGETYPE_JPEG":
- $imageName = imagecreatefromjpeg($imageName);
+ case 2: // JPG
+ $newImage = imagecreatefromjpeg($imageName);
break;
- case "IMAGETYPE_PNG":
- $imageName = imagecreatefrompng($imageName);
+ case 3: // PNG
+ $newImage = imagecreatefrompng($imageName);
break;
- case "IMAGETYPE_BMP":
- $imageName = imagecreatefrombmp($imageName);
+ case 6: // BMP
+ $newImage = imagecreatefrombmp($imageName);
break;
default:
break;
}
+ imagejpeg($newImage, $imageName, $newImageQuality);
}
-
return $imageName;
}