/** * 渡されたファイルを全て処理して、tempfolderに入れる */ private function procAll() { // データを開始して、テンポラリを得る $this->procStart(); // 処理開始 $num = count($_FILES['input_file']['name']); for ($i = 0; $i < $num; $i++) { // 保存先ファイル名 $dest = $_SESSION['tempfolder'] . "/" . $_FILES['input_file']['name'][$i]; $imagick = new CAm1Imagick($_FILES['input_file']['tmp_name'][$i]); if ($_SESSION['isresize'] == 'on') { $imagick->resize($_SESSION['width'] - 0, $_SESSION['height'] - 0); } $geo = $imagick->getGeometry(); $imagick->writeFile($dest); $imagick->clear(); // EXIF調整 $pel = new CPel($dest); //// サイズ書き込み $pel->setSize($geo['width'], $geo['height']); //// 日時 if ($_SESSION['filetime'] == 'on') { // ファイル名が時間を表しているか確認 if (preg_match('/^\\d{5,6}\\./', $_FILES['input_file']['name'][$i])) { $dt = $_SESSION['filedate']; // 日付が指定されているか if (strlen($dt) < 4) { $dt = "" . preg_split("/ /", $pel->getDateTime())[0]; if (!$dt) { $this->response = array("result" => "error", "message" => "[" . $_FILES['input_file']['name'][$i] . "]に撮影時間を追加するには、日付を指定してください。"); http_response_code(500); return; } } // :を-に変換 $dt = preg_replace("/:/", "-", $dt); $tm = preg_split("/\\./", $_FILES['input_file']['name'][$i]); $datetime = $dt . " " . $tm[0]; $pel->setDateTime($datetime); } } // 時間調整 if ($_SESSION['addsecond'] != 0) { $now = (new DateTime($pel->getDateTime()))->getTimestamp() + $_SESSION['addsecond']; $newdt = (new DateTime())->setTimestamp($now); $pel->setDateTime($newdt->format('c')); } //// 保存 $pel->saveFile($dest); } // フォルダーを圧縮して返す $this->downloadZip(); }
public function testWriteImage() { // 画像をリサイズ $this->imagick = new CAm1Imagick($this->TEST_FILES['input_file']['tmp_name'][0]); $sz = $this->imagick->resize(1366, 768); $this->assertEquals(true, $this->imagick->writeFile(FILE_WRITE)); // EXIFを調整する $pel = new CPel(FILE_WRITE); $pel->setSize($sz['width'], $sz['height']); $pel->setDateTime("2015/7/14 23:43"); $pel->saveFile(FILE_WRITE); }