Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP PECL Imagick -> Walidacja obrazka
mstraczkowski
post
Post #1





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


Witam

Niedawno przeprowadzałem testy jednostkowe swojej biblioteki do manipulacji obrazkami opartej na dwóch sterownikach GD / Imagick.
Sprawdzałem jak zachowa się klasa kiedy będziemy starać utworzyć się jej obiekt podając ścieżkę do pliku, który nie jest obrazkiem.

Jako testowy plik wybrałem sobie plik tekstowy *.txt, sterownik GD, rzucił mi prawidłowo wyjątek, natomiast sterownik Imagick przepuścił plik *.txt

Poniżej podaję przykład, jak używany jest Imagick:
  1. try {
  2. $oImage = new \Imagick($this->sPath);
  3. }
  4. catch(\Exception $e) {
  5. throw new \Exception('File is not an image');
  6. }
  7. if (!$oImage->valid()) {
  8. throw new \Exception('File is not an image');
  9. }
  10. $aImage = $oImage->getImageGeometry();
  11. $this->iWidth = (int)$aImage['width'];
  12. $this->iHeight = (int)$aImage['height'];


Po podaniu pliku tekstowego otrzymuję obiekt:
  1. MyImagick Object
  2. (
  3. [sPath] => /var/www/Tests/System/Libraries/Image/Drivers/phpunit.txt
  4. [iWidth] => 612
  5. [iHeight] => 792
  6. )


What da ..? Ja rozumiem jeszcze jakoś przepuścić *.txt, ale jeszcze określić jego wymiary 612x792 ?

Chodzi mi o szybkie ustalenie czy plik jest poprawnym obrazkiem (za pomocą Imagick)
Nie chcę tutaj sprawdzać pierwszych bajtów pliku (magic numbers), ani żadnych dogłębnych analiz, bo od tego mam osobną klasę reguły walidacyjnej.
W sterowniku GD sprawdza się getimagesize, jednak w sterowniku Imagick go nie użyję bo to bez sensu i nie będę mieszać dwóch pakietów ze sobą.

Ten post edytował mstraczkowski 14.02.2013, 22:40:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ano
post
Post #2





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Czy ten txt na 100% nie jest obrazkiem? ;-)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 23:21