예제 #1
0
 private function compress($metadata, $attachment_id)
 {
     $mime_type = get_post_mime_type($attachment_id);
     $tiny_metadata = new Tiny_Metadata($attachment_id, $metadata);
     if ($this->settings->get_compressor() === null || strpos($mime_type, 'image/') !== 0) {
         return array($tiny_metadata, null);
     }
     $success = 0;
     $failed = 0;
     $compressor = $this->settings->get_compressor();
     $active_tinify_sizes = $this->settings->get_active_tinify_sizes();
     $uncompressed_sizes = $tiny_metadata->get_uncompressed_sizes($active_tinify_sizes);
     foreach ($uncompressed_sizes as $uncompressed_size) {
         try {
             $tiny_metadata->add_request($uncompressed_size);
             $tiny_metadata->update();
             $resize = $tiny_metadata->is_resizable($uncompressed_size) ? $this->settings->get_resize_options() : false;
             $response = $compressor->compress_file($tiny_metadata->get_filename($uncompressed_size), $resize);
             $tiny_metadata->add_response($response, $uncompressed_size);
             $tiny_metadata->update();
             $success++;
         } catch (Tiny_Exception $e) {
             $tiny_metadata->add_exception($e, $uncompressed_size);
             $tiny_metadata->update();
             $failed++;
         }
     }
     return array($tiny_metadata, array('success' => $success, 'failed' => $failed));
 }
예제 #2
0
 public function testGetUncompressedSizesShouldReturnOnlyUniqueSizes()
 {
     $this->wp->addOption("tinypng_sizes[custom-size]", "on");
     $this->wp->addOption("tinypng_sizes[custom-size-2]", "on");
     $this->wp->addImageSize('custom-size', array('width' => 150, 'height' => 150));
     $this->wp->addImageSize('custom-size-2', array('width' => 150, 'height' => 150));
     $this->wp->createImages(array("150x150" => 37856), 146480, "2015/09", "panda");
     $tiny_meta = new Tiny_Metadata(155, $this->json("wp_meta_sizes_with_same_files"));
     $tinify_sizes = array(Tiny_Metadata::ORIGINAL, "custom-size", "custom-size-2");
     $uncompressed_sizes = array(Tiny_Metadata::ORIGINAL, "custom-size");
     $this->assertEquals($uncompressed_sizes, $tiny_meta->get_uncompressed_sizes($tinify_sizes));
 }