添加黑条以创建 16x9 图像

2024-01-15

我的服务器上有一张jpg。我用

imagecreatefromjpeg($imgPath);

打开它。我想通过在顶部+底部或左侧+右侧添加黑条来使其成为 16x9 图像。 (思考background-size: contain; background-position: center;)这就是我所拥有的:

$img_info = getimagesize($imgPath);

我知道我需要使用ImageCreateTrueColor制作空白图像,imagecopyresampled创建图像,并且imagejpeg来保存它。但我不知道如何将它们放在一起。谢谢!


这就能解决问题:

$im=imagecreatefromjpeg ($imgPath);
$width=ImageSX($im); $height=ImageSY($im); $ratio=16/9;
$width_out=$width; $height_out=$height;
if ($height_out*$ratio<$width_out) {$height_out=floor($width_out/$ratio);} else {$width_out=floor($height_out*$ratio);}
$left=round(($width_out-$width)/2);
$top=round(($height_out-$height)/2);
$image_out = imagecreatetruecolor($width_out,$height_out);
$bg_color = ImageColorAllocate ($image_out, 0, 0, 0);
imagefill($image_out,0,0,$bg_color);
imagecopy($image_out, $im, $left, $top, 0, 0, $width,$height);
imagejpeg($image_out);

它是如何工作的:创建 $im 容器,并检查宽度和高度。 之后,脚本检查哪一侧小于另一侧(乘以/除以比率)并调整输出大小。 通过将原始图像和输出图像尺寸之间的差异除以 2 来计算原始图像应放置的位置(中心对齐)。 在给定位置复制原始图像 输出,完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加黑条以创建 16x9 图像 的相关文章

随机推荐

  • Python中Matlab的datenum(datestring)的等价函数

    在 Matlab 中 当我运行 datenum http de mathworks com help matlab ref datenum html 功能如下 datenum 1970 1 1 我得到以下输出 719529 我试图找到等效的
  • 如何升级 Windows 10 中的 Python 安装?

    我的一个 LAB 工作站上安装了 Python 2 7 11 我想将 Python 至少升级到 3 5 我该怎么做呢 我是否应该完全卸载 2 7 11 而不是安装新版本 有办法更新吗 更新是个好主意吗 Python 的每个次要版本 即任何
  • 如何重置 COMP_WORDBREAKS 而不影响其他完成脚本?

    当我实现 bash 自动完成功能时 有些事情让我感到困惑 我将把它放入 etc bash completion d 为了实现某些功能 我想删除分词字符冒号 来自变量 COMP WORDBREAKS并添加斜杠 开始于 COMP WORDBRE
  • 如何使用 iGraph 在 R 中挖掘主题

    我正在尝试使用该包在 R 中挖掘 3 节点图案igraph 我想检索图中每个单独顶点的图案数量 这在 graph motifs 函数中似乎不可能 因此 对于示例图 testGraph barabasi game 10 m 5 power 2
  • 将 TFS 项目转换为 git 存储库的最佳方法是什么

    我知道 VS2012 中对 git 的支持已经有了很多进展 我们目前有一个 Team Foundation Server 2012 更新 2 其中我们的所有项目都以经典 TFS 格式存储 我们希望从 TFS 迁移到纯 git repo 系统
  • 添加内存地址错误

    这无法在 VSC 2008 中编译 void toSendMemory2 toSendMemory 4 我不知道为什么 尽管我确信我这样做很愚蠢 P 当你添加N to a T 指针将增加sizeof T N bytes sizeof voi
  • Visual Studio 2013 C++ lambda 捕获参数包

    目前 Visual Studio 2013 update 2 不支持完整的 C 11 其中一项功能是捕获 lambda 中的参数包 有没有一种简单的方法可以解决这个问题 或者我是否必须放弃 Visual Studio 并使用兼容的编译器 例
  • IE7:如何让TD浮动?

    我想要一套 td s 在 IE7 中向左浮动 如果窗口太小 它们应该中断到下一行 CSS table width 100 td border 1px solid red tr f td width 500px float left HTML
  • 托管 Angular 2 应用程序

    我是新来的Angular 2 我认识楼主Angular 1 x在共享主机上 例如GoDaddy 但我不知道如何发布Angular 2应用程序 例如我有这个结构文件夹 angular2 quickstart app app component
  • 如何使用所有模型的通用 Trait 在 Laravel 中实现 eloquent 事件

    我在用拉拉维尔 5 4创建一个网络应用程序 我创建了一个特征来实现创建 更新 删除和恢复雄辩事件的事件 我创建了一个trait如下
  • 如何使用 AngularJS 更改一个 div 上的类,同时将鼠标悬停在另一个 div 上?

    我想使用 AngularJS 指令更改一个 div 的类 同时将鼠标悬停在另一个 div 上 这是我到目前为止所拥有的http jsfiddle net E8nM5 38 http jsfiddle net E8nM5 38 HMTL di
  • 当indexedDB被阻止时应用程序应该如何反应

    我在另一个地方被告知question https stackoverflow com questions 39997018关于检测阻止和解除阻止事件 阻止的打开 或删除 不会被取消 只是 被阻止 一旦解除阻止 打开 或删除 将继续 我想知道
  • Wcf 基本身份验证

    通过简单的测试 Wcf 服务使用基本身份验证时遇到一些问题 我遇到了一个例外 无法激活请求的服务 http qld tgower test Service svc 有关详细信息 请参阅 gt 服务器的诊断跟踪日志 在跟踪日志中它显示 在主机
  • WPF DataGrid实际ColumnHeaderHeight

    当我将 WPF DataGrid 的 ColumnHeaderHeight 设置为 Auto double NaN 时 如何获取列标题的实际呈现高度 我似乎无法在 DataGrid 类中找到该属性 您可以通过在视觉树中搜索来获取它DataG
  • 按照教程 AWS Elastic Beanstalk 的 Flask 教程时出现错误“Your requests.txt is invalid”

    我正在关注 AWS Elastic Beanstalk 的烧瓶教程 http docs aws amazon com elasticbeanstalk latest dg create deploy python flask html部署示
  • 用于确定测试成绩通过/失败的 MIPS 程序

    我正在编写一个 MiPS 程序 该程序将检查 15 个测试分数的列表 它将从终端输入 通过标准是 50 分 终端的输出将包括每个类别的分数以及通过和失败的学生人数 我应该使用输入提示和输出语句 请我需要一些帮助 只需要一些建议如何去做 ma
  • 禁用 GridView 列调整大小

    有什么方法可以在 WPF 中禁用 GridViewColumn 调整大小吗 我不想设置控件的样式 请参阅此链接 ListView 中的固定宽度列 无法调整大小的列 http blogs msdn com b atc avalon team
  • Spark 如何向工作线程发送闭包?

    当我编写 RDD 转换时 例如 val rdd sc parallelise 1 to 1000 rdd map x gt x 3 据我了解 关闭 x gt x 3 这只是一个 Function1 需要可序列化 并且我想我在某处读过编辑 它
  • 有没有办法在 CSS 中查询具有多个类的元素?

    如何查询同时具有两个类的元素 例如 div span class major minor Test span div 我想对同时具有 主要 和 次要 类的所有跨度进行样式设置 以下应该可以解决问题 span major minor colo
  • 添加黑条以创建 16x9 图像

    我的服务器上有一张jpg 我用 imagecreatefromjpeg imgPath 打开它 我想通过在顶部 底部或左侧 右侧添加黑条来使其成为 16x9 图像 思考background size contain background p