/** * * @param AssetContainer $file * @return string URL to thumbnail */ protected function getThumbnailURLForFile(AssetContainer $file) { if (!$file->exists()) { return null; } // Attempt to generate image at given size $width = $this->getPreviewMaxWidth(); $height = $this->getPreviewMaxHeight(); if ($file->hasMethod('ThumbnailURL')) { return $file->ThumbnailURL($width, $height); } if ($file->hasMethod('Thumbnail')) { return $file->Thumbnail($width, $height)->getURL(); } if ($file->hasMethod('Fit')) { return $file->Fit($width, $height)->getURL(); } // Check if unsized icon is available if ($file->hasMethod('getIcon')) { return $file->getIcon(); } }
public function loadFromContainer(AssetContainer $assetContainer) { // If we're working with image resampling, things could take a while. Bump up the time-limit increase_time_limit_to(300); $this->resetResource(); // Skip non-existant files if (!$assetContainer->exists()) { return; } // Skip if failed before $filename = $assetContainer->getFilename(); $hash = $assetContainer->getHash(); $variant = $assetContainer->getVariant(); if ($this->failedResample($filename, $hash, $variant)) { return; } // Mark as potentially failed prior to creation, resetting this on success $content = $assetContainer->getString(); $image = imagecreatefromstring($content); if ($image === false) { $this->markFailed($filename, $hash, $variant); return; } imagealphablending($image, false); imagesavealpha($image, true); // save alphablending setting (important) $this->setImageResource($image); }