Overview

Namespaces

  • Scene7
    • Commands
      • Layer
    • Definitions
    • Helpers
      • Html
        • Attributes
    • Requests

Classes

  • Layer

Traits

  • Align
  • Anchor
  • BackgroundColor
  • Cache
  • ColorQuantization
  • Crop
  • DefaultImage
  • EmbedColorProfile
  • EmbedPathData
  • Fit
  • Format
  • Height
  • Id
  • LayerFactory
  • Locale
  • Mask
  • MaskUse
  • MaxJpegSize
  • Message
  • Name
  • OutputColorProfile
  • Perspective
  • PrintResolution
  • Quality
  • RegionOfInterest
  • Resampling
  • Resolution
  • ResponseType
  • Scale
  • ScaleView
  • Template
  • Timeout
  • Type
  • UnsharpMask
  • ViewRectangle
  • Width
  • XmpEmbed
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 
<?php

namespace Scene7\Commands;

use Scene7\Definitions\Formats;
use Scene7\Definitions\PixelTypes;

trait Format
{
    /**
     * @param string $format Definitions\Formats
     * @param string $pixelType
     * @param string $compression
     * @return $this
     */
    public function setFormat($format, $pixelType = '', $compression = '')
    {
        if (!in_array($format, $this->getAllowedFormats())) {
            throw new \InvalidArgumentException('Invalid format type');
        }

        if ($pixelType && !in_array($pixelType, $this->getAllowedPixelTypes())) {
            throw new \InvalidArgumentException('Invalid pixel type');
        }

        if ($compression && !in_array($compression, $this->getAllowedCompressionTypes())) {
            throw new \InvalidArgumentException('Invalid compression type');
        }

        $command = $format;

        if ($pixelType) {
            $command .= ',' . $pixelType;
        }

        if ($compression) {
            $command .= ',' . $compression;
        }

        $this->addCommand(['fmt' => $command]);
        return $this;
    }

    public function getAllowedFormats()
    {
        return [
            Formats::JPEG,
            Formats::PNG,
            Formats::PNG_ALPHA,
            Formats::TIF,
            Formats::TIF_ALPHA,
            Formats::SWF,
            Formats::SWF_ALPHA,
            Formats::EPS,
            Formats::GIF,
            Formats::GIF_ALPHA,
            Formats::M3U8,
            Formats::F4M,
        ];
    }

    public function getAllowedPixelTypes()
    {
        return [
            PixelTypes::CMYK,
            PixelTypes::GRAY,
            PixelTypes::RGB,
        ];
    }

    public function getAllowedCompressionTypes()
    {
        return ['none', 'lzw', 'zip', 'jpeg'];
    }
}
API documentation generated by ApiGen