2011-12-24 8 views
7

Działa to, jeśli przechowuję skrypt w tym samym katalogu, co obraz, który jest manipulowany. I wynikowy obraz "foo.jpg" jest również generowany w tej samej lokalizacji.Jak korzystać z funkcji writeImage() imagicka?

<?php 

$im = new imagick('image.jpg'); 
$im->thumbnailImage(200, 0); 
$im->writeImage("foo.jpg"); 

?> 

Ale co, jeśli skrypt jest w jednym miejscu, a obraz pragnę pracować w innej lokalizacji i życzę, aby zapisać na miniaturę, aby gdzieś indziej, jak określić te ścieżki?

Robi coś takiego nie działa:

$im = new imagick('path/to/image.jpg'); 
+0

sprawdzić poprawność nazw \ Imagick jeśli używasz konwencję PSR. Lub może sprawdzić nazwy z uwzględnieniem wielkości liter, "Imagick" zamiast "imagick". Można również odwołać się do pathinfo(), file_exists(), is_writable() lub dirname() z flagami, aby uzyskać właściwe ścieżki i połączyć się z nazwą pliku. Ale tak czy inaczej musisz ustawić podstawowy katalog, z którego wskazujesz wszystkie pliki. To zależy od Ciebie. –

Odpowiedz

5

Może być jakiś problem systemu plików. Spróbuj dostać wskaźnik pliku w php pierwszy i sprawdzić, czy jakichkolwiek problemów

$fileHandle = fopen("path/to/image.jpg", "w"); 

Następnie można użyć funkcji Imagick (wersja 6.3.6 lub nowszy);

$im->writeImageFile($filehandle); 
+0

Być może powinieneś zadeklarować: $ imagick = new Imagick ('path/to/image'); $ imagick-> writeImage ('path/to/image'); $ imagick-> close(); $ imagick-> destroy(); zwolnić wszystkie zasoby. –