diff --git a/app/Image/Processor.php b/app/Image/Processor.php new file mode 100644 index 0000000..969dc8d --- /dev/null +++ b/app/Image/Processor.php @@ -0,0 +1,28 @@ +interpretation; + $hue %= 360; + if ($hue < 0) { + $hue = 360 + $hue; + } + if ($image->hasAlpha()) { + $imageWithoutAlpha = $image->extract_band(0, ['n' => $image->bands - 1]); + $alpha = $image->extract_band($image->bands - 1, ['n' => 1]); + return $imageWithoutAlpha + ->colourspace(Interpretation::LCH) + ->linear([$brightness, $saturation, 1.0], [0.0, 0.0, $hue]) + ->colourspace($oldInterpretation) + ->bandjoin($alpha); + } + return $image + ->colourspace(Interpretation::LCH) + ->linear([$brightness, $saturation, 1.0], [0.0, 0.0, $hue]) + ->colourspace($oldInterpretation); + } +} diff --git a/public/image-modified.jpg b/public/image-modified.jpg index cc2a061..3b383bb 100644 Binary files a/public/image-modified.jpg and b/public/image-modified.jpg differ diff --git a/public/image-modified.png b/public/image-modified.png new file mode 100644 index 0000000..7b27ce5 Binary files /dev/null and b/public/image-modified.png differ diff --git a/public/image-modified2.jpg b/public/image-modified2.jpg new file mode 100644 index 0000000..c25b919 Binary files /dev/null and b/public/image-modified2.jpg differ diff --git a/public/imagecircle.png b/public/imagecircle.png new file mode 100644 index 0000000..758dfc7 Binary files /dev/null and b/public/imagecircle.png differ diff --git a/routes/web.php b/routes/web.php index ac2e6d6..6c3e8bc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,8 +1,10 @@ fill(['name' => 'xxxxxx']); -// $user->saveRich(); +Route::get('/', function (Request $request) { + + // && !isset($request->h) + if (isset($request->w) && isset($request->h)) { + $image = Image::thumbnail('../public/image.jpg', $request->w, ['height' => $request->h, 'crop' => 'centre']); + } + + if (isset($request->w) && !isset($request->h)) { + $image = Image::thumbnail('../public/image.jpg', $request->w, ['height' => getimagesize('../public/image.jpg')[1]]); + } + + if (!isset($request->w) && isset($request->h)) { + $image = Image::thumbnail('../public/image.jpg', getimagesize('../public/image.jpg')[0], ['height' => $request->h]); + } + + $y = null; + $x = null; + + if (isset($request->brightness) || isset($request->saturation)) { + $image = Processor::brightness($image, isset($request->brightness) ? $request->brightness : 1.0, isset($request->saturation) ? $request->saturation : 1.0); + } + + if ($request->rotation) { + $image = $image->rotate($request->rotation); + } + + + // ---------------------------------------------------------------------------------------- + if ($request->cpx) { + $GLOBALS['x'] = $request->cpx; + } else { + $GLOBALS['x'] = ($image->width - $request->w) / 2; + } + + if ($request->cpy) { + $GLOBALS['y'] = $request->cpy; + } else { + $GLOBALS['y'] = ($image->height - $request->h) / 2; + } + + + if ($request->debug == true) { + + if (!$request->cpx) { + $image = $image->draw_line(1000, $image->width / 2, 0, $image->width / 2, $image->height); + } + + if (!$request->cpy) { + $image = $image->draw_line(1000, 0, $image->height / 2, $image->width, $image->height / 2); + } + + if ($request->cpx) { + $image = $image->draw_line(1000, $request->cpx, 0, $request->cpx, $image->height); + } + + if ($request->cpy) { + $image = $image->draw_line(1000, 0, $request->cpy, $image->width, $request->cpy); + } + } + // ---------------------------------------------------------------------------------------- + + if ($request->flip == "h") { + $image = $image->fliphor(); + } + + if ($request->flip == "v") { + $image = $image->flipver(); + } -// return 'done'; -// return view('welcome'); -// }); -Route::get('/', function (Request $request) { - $image = Image::thumbnail('../public/image.jpg', $request->w); - $image->writeToFile('image-modified.jpg',[ + $image->writeToFile('image-modified.jpg', [ 'Q' => $request->q ]); - echo ''; + return response()->file(public_path("image-modified.jpg")); });