diff --git a/_scripts/generate-gallery.php b/_scripts/generate-gallery.php index aa8e2a8..65dff5e 100644 --- a/_scripts/generate-gallery.php +++ b/_scripts/generate-gallery.php @@ -15,6 +15,7 @@ $oConsole ->setDefinition([ new InputOption('export', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Target image export sizes'), new InputOption('layout', null, InputOption::VALUE_REQUIRED, 'Rendering layout for individual images', 'gallery-photo'), + new InputOption('skip-resize', null, InputOption::VALUE_NONE, 'Skip resizing'), new InputArgument('name', InputArgument::REQUIRED, 'Gallery name'), new InputArgument('dir', InputArgument::REQUIRED, 'Directory to scan for images'), new InputArgument('assetdir', InputArgument::OPTIONAL, 'Asset directory for exported images', 'asset/gallery'), @@ -35,6 +36,8 @@ $oConsole $sRenderPath = $oInput->getArgument('mdowndir') . '/' . $sGallery; $sLayout = $oInput->getOption('layout'); $sExports = $oInput->getOption('export'); + $bSkipResize = $oInput->getOption('skip-resize'); + $bSkipResize = true; $oImagine = new Imagine\Gd\Imagine(); @@ -156,15 +159,17 @@ $oConsole $oOutput->write(' ' . $sExport . ''); if (false !== strpos($sExport, 'x')) { - list($iW, $iH) = explode('x', $sExport); - if ($iW > $oSourceSize->getWidth() || $iH > $oSourceSize->getHeight()) { + list($iX, $iY) = explode('x', $sExport); + if ($iX > $oSourceSize->getWidth() || $iY > $oSourceSize->getHeight()) { $oOutput->writeln(' [skipping]'); continue; } - $sExportImage = $oSourceJpg->thumbnail( - new \Imagine\Image\Box($iW, $iH), - \Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND - ); + if (!$bSkipResize) { + $sExportImage = $oSourceJpg->thumbnail( + new \Imagine\Image\Box($iX, $iY), + \Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND + ); + } } else { if ('w' == substr($sExport, -1)) { $iX = (int) $sExport; @@ -185,29 +190,42 @@ $oConsole continue; } - $sExportImage = $oSourceJpg->thumbnail( - new \Imagine\Image\Box(ceil($iX), ceil($iY)), - \Imagine\Image\ImageInterface::THUMBNAIL_INSET - ); + $iX = ceil($iX); + $iY = ceil($iY); + if (!$bSkipResize) { + $sExportImage = $oSourceJpg->thumbnail( + new \Imagine\Image\Box($iX, $iY), + \Imagine\Image\ImageInterface::THUMBNAIL_INSET + ); + } } - $sExportsize = $sExportImage->getSize(); + if ($bSkipResize) { + $oOutput->writeln(''); + } else { + $aExportsize = $sExportImage->getSize(); + if ($iX != $aExportsize->getWidth() || $iY != $aExportsize->getHeight()) { + $oOutput->writeln(sprintf(' [%dx%d] vs [%dx%d]', $iX, $iY, $aExportsize->getWidth(), $aExportsize->getHeight())); + } else { + $oOutput->writeln(sprintf(' [%dx%d]', $iX, $iY)); + } + $sExportPath = $sAssetPath . '/' . $aPhoto['id'] . '~' . $sExport . '.jpg'; + + // Write converted image + file_put_contents( + $sExportPath, + $sExportImage->get('jpeg', ['quality' => 90]) + ); + + touch($sExportPath, $aPhoto['date']->getTimestamp()); + $sExportImage = null; + $iX = $aExportsize->getWidth(); + $iY = $aExportsize->getHeight(); + } $aPhoto['sizes'][$sExport] = [ - 'width' => $sExportsize->getWidth(), - 'height' => $sExportsize->getHeight(), + 'width' => $iX, + 'height' => $iY, ]; - - $oOutput->writeln(' [' . $sExportsize->getWidth() . 'x' . $sExportsize->getHeight() . ']'); - $sExportPath = $sAssetPath . '/' . $aPhoto['id'] . '~' . $sExport . '.jpg'; - - // Write converted image - file_put_contents( - $sExportPath, - $sExportImage->get('jpeg', ['quality' => 90]) - ); - - touch($sExportPath, $aPhoto['date']->getTimestamp()); - $sExportImage = null; } $oSourceJpg = null; }