Ho un'applicazione che consente agli utenti di caricare immagini. Il test case che utilizzo è un jpeg di 1,6 MB con dimensioni 3872 x 2592 px. Lo script di upload nel back-end ridimensionerà l'immagine caricata in 6 formati aggiuntivi:Come velocizzare il ridimensionamento delle immagini in un'applicazione PHP CodeIgniter?
- quadrato (piccole 75 x 75)
- piccolo pollice (50 x 38)
- pollice (100 x 76)
- Piccolo (240 x 161)
- medio (500 x 378)
- grandi dimensioni (1024 x 774)
lo so E 'molto, ma credimi, ho bisogno di questo. Faccio il ridimensionamento usando la classe Manipolazione delle immagini di Code Igniter, che usa GD, GD2 o ImageMagick per eseguire il ridimensionamento. Per prima cosa l'ho configurato per usare GD2 e ho notato che il processo di ridimensionamento totale impiega 11 secondi.
Poiché l'utente deve attendere questo processo, non è accettabile. Dopo un sacco di lettura ho imparato che ImageMagick è una libreria molto più veloce ed efficiente la manipolazione, così sono passato a che:
$sourceimage = $data['filedata']['file_path'] . $data['imagedata']['user_id'] . "/" . $imageid . $data['filedata']['file_ext'];
$resize_settings['image_library'] = 'imagemagick';
$resize_settings['library_path'] = '/usr/bin';
$resize_settings['source_image'] = $sourceimage;
$resize_settings['maintain_ratio'] = false;
$resize_settings['quality'] = "100%";
$this->load->library('image_lib', $resize_settings);
Con mia grande sorpresa, il processo di ridimensionamento ora richiede più tempo: 15 secondi per essere precisi.
Dando un'occhiata al mio registro, vedo che ogni azione di ridimensionamento richiede 2 secondi, indipendentemente dal formato di file a cui si sta ridimensionando. Immagino sia perché ridimensiono sempre l'originale, che è molto grande.
Non vorrei scaricare il processo di ridimensionamento in un processo pianificato, perché ciò diminuirebbe l'usabilità del sito. Significa che gli utenti devono attendere qualche minuto prima di poter iniziare a vedere/lavorare con l'immagine.
Quindi, ci sono dei modi intelligenti per accelerare drasticamente questo processo di ridimensionamento in modo da poterlo mantenere in tempo reale? Basta essere chiari: consentire risoluzioni più piccole non è un'opzione, questo è un sito di fotografia che sto costruendo. Inoltre, ho davvero bisogno dei sei formati menzionati.
C'è qualche possibilità ci si potrebbe fornire l'immagine originale 1.6MB JPEG? –