crop.php 2.8 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /**
  3. * User: lang
  4. * Date: 2024/3/12
  5. * Time: 13:29
  6. */
  7. require '../../vendor/autoload.php';
  8. use Kkokk\Poster\Facades\Poster;
  9. use Kkokk\Poster\Facades\Html;
  10. $html = '<p><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN01x1zaRA28qGize0z8Z-2216558867983.png" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN018Wkbza28qGgEw9zFc-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i1/2216558867983/O1CN012kv2PV28qGgOLWevq-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i4/2216558867983/O1CN01wkGs3928qGgQ33mpL-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i2/2216558867983/O1CN01aKQZLP28qGgLIwWCo-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i4/2216558867983/O1CN01y16VA428qGgRQVuEa-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i4/2216558867983/O1CN01FPc1GR28qGgTR2N2e-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i2/2216558867983/O1CN01wXODo528qGgNH6UOJ-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i4/2216558867983/O1CN01fKlq4w28qGgKjeXRu-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN01VNiW7U28qGgKjfXre-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN0137I51828qGgNGJssR-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN01LKBile28qGgSe9v8m-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN01tEqT4328qGgjTggJE-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/><img src="https://img.alicdn.com/imgextra/i3/2216558867983/O1CN01wOhqA728qGgnrcyi9-2216558867983.jpg" style="max-width:100%;" contenteditable="false"/></p>';
  11. $chunkHeight = 1500;
  12. $poster = Poster::extension('imagick')
  13. ->buildImDst(Html::load($html)->size(480)->render());
  14. $canvasInfo = $poster->getCanvasInfo();
  15. $tmpCanvas = $canvasInfo['canvas'];
  16. $width = $canvasInfo['width'];
  17. $height = $canvasInfo['height'];
  18. $count = ceil($height / $chunkHeight);
  19. for ($i = 0; $i < $count; $i++) {
  20. $y = $chunkHeight * $i;
  21. if ($i + 1 == $count) {
  22. $chunkHeight = $height - $y;
  23. }
  24. $crop = Poster::extension('gd')
  25. ->buildImDst($tmpCanvas)
  26. ->crop(0, $y, $width, $chunkHeight)
  27. ->getPoster(__DIR__ . '/../poster/crop/' . $i . '.png');
  28. }