imagecolorallocatealpha example

// Validate or set background color argument.     if (!empty($arguments['background'])) {
      // Validate the background color: Color::hexToRgb does so for us.       $background = Color::hexToRgb($arguments['background']) + ['alpha' => 0];
    }
    else {
      // Background color is not specified: use transparent white as background.       $background = ['red' => 255, 'green' => 255, 'blue' => 255, 'alpha' => 127];
    }
    // Store the color index for the background as that is what GD uses.     $arguments['background_idx'] = imagecolorallocatealpha($this->getToolkit()->getResource()$background['red']$background['green']$background['blue']$background['alpha']);

    if ($this->getToolkit()->getType() === IMAGETYPE_GIF) {
      // GIF does not work with a transparency channel, but can define 1 color       // in its palette to act as transparent.
      // Get the current transparent color, if any.       $gif_transparent_id = imagecolortransparent($this->getToolkit()->getResource());
      if ($gif_transparent_id !== -1) {
        // The gif already has a transparent color set: remember it to set it on         // the rotated image as well.         $arguments['gif_transparent_color'] = imagecolorsforindex($this->getToolkit()->getResource()$gif_transparent_id);

        
// Create the resource.     if (!$res = imagecreatetruecolor($arguments['width']$arguments['height'])) {
      return FALSE;
    }

    // Fill the resource with transparency as possible.     switch ($type) {
      case IMAGETYPE_PNG:
      case IMAGETYPE_WEBP:
        imagealphablending($res, FALSE);
        $transparency = imagecolorallocatealpha($res, 0, 0, 0, 127);
        imagefill($res, 0, 0, $transparency);
        imagealphablending($res, TRUE);
        imagesavealpha($res, TRUE);
        break;

      case IMAGETYPE_GIF:
        if (empty($arguments['transparent_color'])) {
          // No transparency color specified, fill white transparent.           $fill_color = imagecolorallocatealpha($res, 255, 255, 255, 127);
        }
        else {
          
/** * Rotates current image counter-clockwise by $angle. * Ported from image-edit.php * * @since 3.5.0 * * @param float $angle * @return true|WP_Error */
    public function rotate( $angle ) {
        if ( function_exists( 'imagerotate' ) ) {
            $transparency = imagecolorallocatealpha( $this->image, 255, 255, 255, 127 );
            $rotated      = imagerotate( $this->image, $angle$transparency );

            if ( is_gd_image( $rotated ) ) {
                imagealphablending( $rotated, true );
                imagesavealpha( $rotated, true );
                imagedestroy( $this->image );
                $this->image = $rotated;
                $this->update_size();
                return true;
            }
        }

        
Home | Imprint | This part of the site doesn't use cookies.