antey/instagram-image

根据Instagram要求调整图像大小的库

1.0.0 2022-12-09 11:50 UTC

This package is auto-updated.

Last update: 2024-09-09 15:46:07 UTC


README

PHP库,用于根据Instagram要求调整图像大小。

tests workflow Coverage Status License: MIT Stand With Ukraine

设置

手动克隆仓库,或通过composer

$ composer require antey/instagram-image

要求

  • PHP版本:>= 7.4;
  • PHP扩展:gd。

依赖项

此包使用php-image-resizephp-image-slice

使用方法

此包允许将图像调整到任何分辨率,根据Instagram要求或获取帖子或相册的最佳分辨率(功能描述如下)。

Instagram分辨率

  • 个人资料照片 - 360x360 px;
  • 故事 - 1080x1920 px;
  • Reels - 1080x1920 px;
  • IGTV封面 - 420x654 px;
  • 正方形帖子 - 1080x1080 px;
  • 风景帖子 - 1080x564 px;
  • 肖像帖子 - 1080x1350 px;

调整大小

此包允许使用以下方法之一将原始图像调整大小为Instagram图像之一: getProfilegetIgtvCovergetSinglePostSquaregetSinglePostLandscapegetSinglePostPortrait

切片

与简单调整大小不同,Instagram还允许发布一些多个图像。这可以是StoriesReels、具有多个图像的帖子。为了创建这些类型的图像,包提供将原始图像调整大小并切割成多个片段的方法。这些方法列表: getStoriesgetReelsgetGallerySquaregetGalleryLandscapegetGalleryPortrait

最佳调整大小

为了简化与帖子的工作,包提供将自动找到最可靠类型(单个图像或相册)和分辨率(正方形、风景、肖像)的方法,对于给定图像返回调整大小后的图像路径,或切片片段的路径。这是getSinglePostOptimalgetGalleryOptimalgetPostOptimal

可用功能

调整大小初始化

use Antey\InstagramImage\InstagramImageResize;

$imageResize = new InstagramImageResize();

调整简单图像

对于简单图像(如个人资料故事ReelsIGTVCover),调整大小后的图像(或图像相册)将通过单个指定方法创建。

getProfile

$imageResize->getProfile(string $filename, string $path = ''): string;

将给定图像转换为jpeg,调整到个人资料分辨率,并返回结果图像的路径。如果目标为空,则替换原始文件。

getStories

$imageResize->getStories(string $filename, string $path = ''): array;

将给定图像转换为jpeg,调整到故事分辨率,如果可能,将其切割成多个故事图像。返回结果图像的路径数组。如果目标为空,则将结果文件存储在原始文件附近。

getReels

$imageResize->getReels(string $filename, string $path = ''): array;

将给定图像转换为jpeg,调整到Reels分辨率,如果可能,将其切割成多个Reels图像。返回结果图像的路径数组。如果目标为空,则将结果文件存储在原始文件附近。

getIgtvCover

$imageResize->getIgtvCover(string $filename, string $path = ''): string;

将给定图像转换为jpeg,调整到IGTVCover分辨率,并返回结果图像的路径。如果目标为空,则替换原始文件。

调整帖子图像

与简单图像不同,帖子调整大小有些棘手。Instagram允许以三种分辨率发布帖子:1080x1080、1080x565、1080x1350。此外,还有发布帖子图像相册的可能性。因此,为了处理帖子调整大小,我们需要额外的方法集。

getSinglePostSquare

$imageResize->getSinglePostSquare(string $filename, string $path = ''): string;

将给定图像转换为jpeg,调整到正方形帖子分辨率,并返回结果图像的路径。如果目标为空,则替换原始文件。

getSinglePostLandscape

$imageResize->getSinglePostLandscape(string $filename, string $path = ''): string;

将给定图像转换为jpeg格式,调整为大比例分辨率,并返回结果图像的路径。如果目标路径为空,则替换原始文件。

getSinglePostPortrait

$imageResize->getSinglePostPortrait(string $filename, string $path = ''): string;

将给定图像转换为jpeg格式,调整为竖直比例分辨率,并返回结果图像的路径。如果目标路径为空,则替换原始文件。

getSinglePostOptimal

$imageResize->getSinglePostOptimal(string $filename, string $path = ''): string;

将给定图像转换为jpeg格式,调整为最匹配比例分辨率,并返回结果图像的路径。如果目标路径为空,则替换原始文件。

getGallerySquare

$imageResize->getGallerySquare(string $filename, string $path = ''): array;

将给定图像转换为jpeg格式,切割成几个正方形比例的结果图像,并返回这些图像的路径。如果目标路径为空,则存储在原始图像附近。

getGalleryLandscape

$imageResize->getGalleryLandscape(string $filename, string $path = ''): array;

将给定图像转换为jpeg格式,切割成几个横幅比例的结果图像,并返回这些图像的路径。如果目标路径为空,则存储在原始图像附近。

getGalleryPortrait

$imageResize->getGalleryPortrait(string $filename, string $path = ''): array;

将给定图像转换为jpeg格式,切割成几个竖直比例的结果图像,并返回这些图像的路径。如果目标路径为空,则存储在原始图像附近。

getGalleryOptimal

$imageResize->getGalleryOptimal(string $filename, string $path = ''): array;

将给定图像转换为jpeg格式,并切割成几个最匹配比例的结果图像,然后返回结果图像的路径。如果目标路径为空,则存储在原始图像附近。

getOptimalPost

$imageResize->getOptimalPost(string $filename, string $path = ''): array;

将给定图像转换为jpeg格式,并根据图像分辨率调整到最佳比例分辨率,或者切割成几个最匹配比例的结果图像,然后返回结果图像的路径。如果目标路径为空,则存储在原始图像附近。