function _before() { if (!preg_match('~^https?://~', $this->filename)) { $this->file_type = (int) $this->set_type(); $path = $this->path_to_original(); $pathinfo = pathinfo($path); if ($this->file_type > 0) { include_once FCPATH . 'app' . DIRECTORY_SEPARATOR . 'koken' . DIRECTORY_SEPARATOR . 'ffmpeg.php'; $ffmpeg = new FFmpeg($path); if ($ffmpeg->version()) { $this->duration = $ffmpeg->duration(); list($this->width, $this->height) = $ffmpeg->dimensions(); $this->lg_preview = $ffmpeg->create_thumbs(); } } else { list($this->width, $this->height) = getimagesize($path); @unlink($path . '.icc'); $iptc = $this->_get_iptc_data($path); $this->has_iptc = !empty($iptc); $exif = $this->_get_exif_data($path); $this->has_exif = !empty($exif); if (isset($iptc['2#005'])) { if (is_array($iptc['2#005'])) { $iptc['2#005'] = $iptc['2#005'][0]; } $this->title = $this->_force_utf($iptc['2#005']); } if (isset($iptc['2#120'])) { if (is_array($iptc['2#120'])) { $iptc['2#120'] = $iptc['2#120'][0]; } $this->caption = $this->_force_utf($iptc['2#120']); } if (isset($iptc['2#025']) && is_array($iptc['2#025'])) { $words = array(); if (count($iptc['2#025']) == 1) { $words = array($iptc['2#025'][0]); } else { $words = $iptc['2#025']; } $_POST['tags'] = rtrim($_POST['tags'], ',') . ',' . join(',', $words); } $captured_on = $this->parse_captured($iptc, $exif); if (!is_null($captured_on) && $captured_on > 0) { $this->captured_on = $captured_on; } $longest = max($this->width, $this->height); $midsize = preg_replace('/\\.' . $pathinfo['extension'] . '$/', '.1600.' . $pathinfo['extension'], $path); if (file_exists($midsize)) { unlink($midsize); } if ($longest > 1600) { include_once FCPATH . 'app' . DIRECTORY_SEPARATOR . 'koken' . DIRECTORY_SEPARATOR . 'DarkroomUtils.php'; $s = new Setting(); $s->where('name', 'image_processing_library')->get(); $d = DarkroomUtils::init($s->value); $d->read($path, $this->width, $this->height)->resize(1600)->quality(100)->render($midsize); $external = Shutter::store_original($midsize, $this->path . '/' . basename($midsize)); if ($external) { $this->storage_url_midsize = $external; unlink($midsize); } } } $this->filesize = filesize($path); } if (is_numeric($this->width)) { $this->aspect_ratio = $this->width / $this->height; } }