”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 社交媒体自动生成图片指南

社交媒体自动生成图片指南

发布于2025-04-14
浏览:976

我一直在考虑社交媒体图像。您知道,当您在Twitter,Facebook或iMessage等地共享链接时(可以)显示的图像。您本质上是在没有他们的情况下将钱留在桌子上,因为他们将一份带有一些小链接的常规帖子变成了一个帖子,上面有一个很大的Honkin注意力Grabbin图像,并带有大量可单击的区域。在网站上的任何图像中,社交媒体图像可能是网站上最受欢迎,最记忆,最被网络要求的图像的第一。

本质上是HTML的实现:

我想我再次考虑它,因为Github似乎有新的社交媒体卡。这些是新的,对吗?

这些github社交媒体图像显然是编程生成的。查看一个示例URL。

自动化

虽然我认为您可以从完全手工制作的定制社交媒体形象中获得很多轰动,但对于拥有很多页面的网站而言,这是不切实际的:博客,电子商务……您知道我的意思是什么。这样的网站的诀窍是通过以某种方式模板来自动化其创建。我过去提到过其他人的意愿,但让我们回顾一下:

DREW MCLELLAN:动态社交共享图像

您知道所有这些共同之处吗? puppeteer。
  • 用作社交媒体映像? 我喜欢这个想法,但是这意味着可以访问一直在运行的节点服务器(Puppeteer在节点上运行),或者您可以作为无服务器函数点击。因此,难怪这个想法引起了jamstack人群的共鸣,他们已经习惯了运行构建过程和利用无服务器功能之类的事情。
  • 我认为在URL上“托管”无服务器函数的想法 - 并传递通过URL参数在屏幕截图中包含的内容的动态值也很聪明。
  • SVG路由
  • 我有点挖掘使用SVG作为您模板的社交媒体图像的事物的想法,部分是因为它具有如此固定的坐标,可以在内部设计,这与我的心理模型相匹配,以使您需要设计社交媒体图像所需的确切维度。我喜欢SVG如此合并。
  • 乔治·弗朗西斯(George Francis)博客“创建自己的生成SVG社交图像”,这是所有这些都很好地结合在一起的绝妙例子,并带有随机化和奇思妙想。我也喜欢可满足的技巧,使其成为一次性屏幕截图的有用工具。
  • 我也涉足动态SVG创建:在我们的会议网站上查看此会议页面。
  • 不幸的是,SVG不是社交媒体图像的支持图像格式。以下是Twitter:

在卡中使用的图像URL。图像的大小必须小于5MB。支持JPG,PNG,WebP和GIF格式。仅使用动画GIF的第一帧。不支持SVG。

仍然,在SVG中组成/模板可能很酷。您将其转换为另一种格式以供最终使用。一旦是SVG,从SVG到PNG的转换几乎很容易。就我而言,我使用了在构建过程中运行的SVG2PNG和非常小的Gulp任务。 wordpress呢?

我没有WordPress网站的构建过程 - 至少不是每次发布或更新帖子时运行的一个。但是WordPress将从动态的社交媒体图像中受益于

(在我的世界中)。

并不是我现在没有它们。 Jetpack在使这项工作很好的过程中有很长的路要走。它使《社交媒体形象》的“特色图像”成为了我的预览,并自动到社交网络。这是我对此进行的视频。那会让我到一个附着特色图像并很好地显示的地方。

,但并不能自动化他们的创建。有时,仅定制图形就是要走的路(上面的图形可能就是一个很好的例子),但也许更常见的模板卡是必经之路。

幸运的是,我从Daniel Post那里抓住了WordPress的社交图像生成器。看看如何花哨:

这正是WordPress所需的!

丹尼尔本人帮助我创建了一个针对CSS-Tricks的自定义模板。我有一个巨大的梦想,其中有一堆模板可供选择,其中包含标题,作者,选择的引号,特色图像和其他内容。到目前为止,我们仅定居两个,一个带有标题和作者的模板,以及带有特色图像,标题和作者的模板。这些图像是由该元数据创建的:

这不是木偶。这甚至不是Phantomjs供电的SVGTOPNG。这是PHP生成的图像!甚至不是想象中的,而是直截了当的GD,这是PHP中的东西。因此,这些图像不是用任何形式的语法创建的,这些语法可能对前端开发人员感到舒适。最好使用其中一个模板,但是如果您想了解我的自定义版本是如何编码的(Daniel),Lemme知道,我可以在公共场所发布代码。

很酷的结果,对?

我明白为什么必须这样构建它:它使用的是WordPress可以运行的任何技术。这非常具有WordPress的精神。但这确实使我希望创建模板可以以更现代的方式完成。就像如果您的社交媒体映像的模板就像其他模板文件一样,您的社交媒体图像的模板就像social-image.php一样,那不是很酷吗?您是否使用所有普通的WordPress API来模板和设计该页面?几乎像ACF块?并且它获取屏幕截图并使用了吗?我会为你回答:是的,那太酷了。
最新教程 更多>
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-07-16
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-07-16
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-07-16
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-07-16
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-07-16
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-07-16
  • C++成员函数指针正确传递方法
    C++成员函数指针正确传递方法
    如何将成员函数置于c [&& && && && && && && && && && &&&&&&&&&&&&&&&&&&&&&&&华仪的函数时,在接受成员函数指针的函数时,要在函数上既要提供指针又可以提供指针和指针到函数的函数。需要具有一定签名的功能指针。要通过成员函数,您需要同时提供对象指针(此...
    编程 发布于2025-07-16
  • Java字符串非空且非null的有效检查方法
    Java字符串非空且非null的有效检查方法
    检查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。isement(Isement() trim whitespace whitesp...
    编程 发布于2025-07-16
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-07-16
  • CSS可以根据任何属性值来定位HTML元素吗?
    CSS可以根据任何属性值来定位HTML元素吗?
    靶向html元素,在CSS 中使用任何属性值,在CSS中,可以基于特定属性(如下所示)基于特定属性的基于特定属性的emants目标元素: 字体家庭:康斯拉斯(Consolas); } 但是,出现一个常见的问题:元素可以根据任何属性值而定位吗?本文探讨了此主题。的目标元素有任何任何属性值,属...
    编程 发布于2025-07-16
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-07-16
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。$("#map").css({ marginT...
    编程 发布于2025-07-16
  • PHP SimpleXML解析带命名空间冒号的XML方法
    PHP SimpleXML解析带命名空间冒号的XML方法
    在php 很少,请使用该限制很大,很少有很高。例如:这种技术可确保可以通过遍历XML树和使用儿童()方法()方法的XML树和切换名称空间来访问名称空间内的元素。
    编程 发布于2025-07-16
  • 如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    Red: How to Redirect Multiple User Types to Respective ActivitiesUnderstanding the ProblemIn a Firebase-based voting app with three distinct user type...
    编程 发布于2025-07-16
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 c...
    编程 发布于2025-07-16

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3