Zunächst sollten Sie sagen, was TYPO3-Version verwenden und Wenn Ihre Erweiterung Extbase oder den alten pibased-Code verwendet.
Ich denke, es ist Extbase, seit Sie von einem Namespaced Viewhelper erben. Mein Rat würde sein, einen Blick auf den ursprünglichen f:image
Viewhelper-Code (TYPO3\CMS\Fluid\ViewHelpers\ImageViewHelper
) zu werfen und zu kopieren, was Sie brauchen.
erste fügen Sie diese auf den oberen Teil von Ihnen View Helfer:
/**
* @var \TYPO3\CMS\Extbase\Service\ImageService
* @inject
*/
protected $imageService;
Dann wird der Code in Ihrer Methode
$image = $this->imageService->getImage($imgPath);
// you have to set these variables or remove if you don't need them
$processingInstructions = array(
'width' => $width,
'height' => $height,
'minWidth' => $minWidth,
'minHeight' => $minHeight,
'maxWidth' => $maxWidth,
'maxHeight' => $maxHeight,
'crop' => $crop,
);
$processedImage = $this->imageService->applyProcessingInstructions($image, $processingInstructions);
$imageUri = $this->imageService->getImageUri($processedImage);
$imageUri
hält nun den Pfad zur Größe geänderte Bild.
PS: Das von Ihnen kopierte Beispiel stammt vom alten pibased-System, das seit dem 7.x-Zweig nicht mehr existiert.
Ich nehme an, dass dies das Feld 'media' der Tabelle' pages' ist, richtig? Sie könnten in Erwägung ziehen, den verfügbaren '' View-Helfer zu verwenden ... Wird die View-Komponente aus einem Extbase-Kontext oder von einem TypoScript 'FLUIDTEMPLATE' aufgerufen? –
@OliverHader Entschuldigung, der Code wurde von der anderen Website eingefügt, ich habe ihn jetzt bearbeitet, um meinen Code besser zu finden, aber das hat keine Auswirkungen auf dieses Problem. Dieser ViewHelper wird innerhalb der Fluid-Vorlage aufgerufen, die in der gleichen Erweiterung (wie die Erweiterung von ViewHelper) liegt, also nehme ich an, dass es der Extbase-Kontext ist. Ich möchte verwenden, aber ich weiß nicht, wie man es in PHP-Code verwendet? –
Alan