WP_Image_Editor_Imagick::load() – Loads image from $this->file into new Imagick Object.

You appear to be a bot. Output may be restricted

Description

Loads image from $this->file into new Imagick Object.

Usage

$true|WP_Error = WP_Image_Editor_Imagick::load();

Parameters

Returns

true|WP_Error True if loaded; WP_Error on failure.

Source

File name: wordpress/wp-includes/class-wp-image-editor-imagick.php
Lines:

1 to 56 of 56
  public function load() {
    if ( $this->image instanceof Imagick ) {
      return true;
    }

    if ( ! is_file( $this->file ) && ! wp_is_stream( $this->file ) ) {
      return new WP_Error( 'error_loading_image', __( 'File does not exist?' ), $this->file );
    }

    /*
		 * Even though Imagick uses less PHP memory than GD, set higher limit
		 * for users that have low PHP.ini limits.
		 */
    wp_raise_memory_limit( 'image' );

    try {
      $this->image    = new Imagick();
      $file_extension = strtolower( pathinfo( $this->file, PATHINFO_EXTENSION ) );

      if ( 'pdf' === $file_extension ) {
        $pdf_loaded = $this->pdf_load_source();

        if ( is_wp_error( $pdf_loaded ) ) {
          return $pdf_loaded;
        }
      } else {
        if ( wp_is_stream( $this->file ) ) {
          // Due to reports of issues with streams with `Imagick::readImageFile()`, uses `Imagick::readImageBlob()` instead.
          $this->image->readImageBlob( file_get_contents( $this->file ), $this->file );
        } else {
          $this->image->readImage( $this->file );
        }
      }

      if ( ! $this->image->valid() ) {
        return new WP_Error( 'invalid_image', __( 'File is not an image.' ), $this->file );
      }

      // Select the first frame to handle animated images properly.
      if ( is_callable( array( $this->image, 'setIteratorIndex' ) ) ) {
        $this->image->setIteratorIndex( 0 );
      }

      $this->mime_type = $this->get_mime_type( $this->image->getImageFormat() );
    } catch ( Exception $e ) {
      return new WP_Error( 'invalid_image', $e->getMessage(), $this->file );
    }

    $updated_size = $this->WP_Image_Editor_Imagick::update_size();

    if ( is_wp_error( $updated_size ) ) {
      return $updated_size;
    }

    return $this->WP_Image_Editor_Imagick::set_quality();
  }
 

 View on GitHub View on Trac