initial commit
This commit is contained in:
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
if (!defined('WPO_VERSION')) die('No direct access allowed');
|
||||
use \WebPConvert\Convert\ConverterFactory;
|
||||
|
||||
require_once(WPO_PLUGIN_MAIN_PATH . 'vendor/autoload.php');
|
||||
require_once(WPO_PLUGIN_MAIN_PATH . 'webp/class-wpo-webp-test-run.php');
|
||||
|
||||
if (!class_exists('WPO_WebP_Convert')) :
|
||||
|
||||
class WPO_WebP_Convert {
|
||||
|
||||
public $converters = null;
|
||||
|
||||
public function __construct() {
|
||||
$this->converters = WP_Optimize()->get_options()->get_option('webp_converters');
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts uploaded image to webp format
|
||||
*
|
||||
* @param string $source - path of the source file
|
||||
*/
|
||||
public function convert($source) {
|
||||
if (count($this->converters) < 1) return false;
|
||||
|
||||
$destination = $this->get_destination_path($source);
|
||||
$this->check_converters_and_do_conversion($source, $destination);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the destination full path
|
||||
*
|
||||
* @param string $source - path of the source file
|
||||
*
|
||||
* @return string $destination - path of destination file
|
||||
*/
|
||||
protected function get_destination_path($source) {
|
||||
$path_parts = pathinfo($source);
|
||||
$destination = $path_parts['dirname'] . '/'. basename($source) . '.webp';
|
||||
return $destination;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loop through available converters and do the conversion
|
||||
*
|
||||
* @param string $source - path of source file
|
||||
* @param string $destination - path of destination file
|
||||
*/
|
||||
protected function check_converters_and_do_conversion($source, $destination) {
|
||||
foreach ($this->converters as $converter) {
|
||||
$converter_instance = ConverterFactory::makeConverter(
|
||||
$converter,
|
||||
$source,
|
||||
$destination
|
||||
);
|
||||
$converter_instance->doConvert();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
endif;
|
Reference in New Issue
Block a user