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

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

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

我一直在考虑社交媒体图像。您知道,当您在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块?并且它获取屏幕截图并使用了吗?我会为你回答:是的,那太酷了。
最新教程 更多>
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-05
  • 在Go语言中如何简洁定义10的幂常量
    在Go语言中如何简洁定义10的幂常量
    在GO 利用浮点线文字一种简洁的方式是使用浮点文字,该方法是使用floingpoint protals。写作1E3比写作1000更有效。这是一个示例(67个没有空间的字符):的文字用于未构图的整数常数,我们可以将1000用于KB,并用KB将随后的常量乘以KB,如下所示(77个没有空格的字符):,作...
    编程 发布于2025-05-05
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-05-05
  • 您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    在javascript console 中显示颜色是可以使用chrome的控制台显示彩色文本,例如红色的redors,for for for for错误消息?回答是的,可以使用CSS将颜色添加到Chrome和Firefox中的控制台显示的消息(版本31或更高版本)中。要实现这一目标,请使用以下模...
    编程 发布于2025-05-05
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    在尝试为JavaScript对象创建动态键时,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正确的方法采用方括号: jsobj ['key''i] ='example'1; 在JavaScript中,数组是一...
    编程 发布于2025-05-05
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs result = function() 如果结果: 对于结果: ...
    编程 发布于2025-05-05
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-05-05
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    在Microsoft Visual C 中,Microsoft consions用户strate strate strate strate strate strate strate strate strate strate strate strate strate strate strate st...
    编程 发布于2025-05-05
  • Java中Lambda表达式为何需要“final”或“有效final”变量?
    Java中Lambda表达式为何需要“final”或“有效final”变量?
    Lambda Expressions Require "Final" or "Effectively Final" VariablesThe error message "Variable used in lambda expression shou...
    编程 发布于2025-05-05
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-05-05
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-05-05
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-05-05
  • Python中嵌套函数与闭包的区别是什么
    Python中嵌套函数与闭包的区别是什么
    嵌套函数与python 在python中的嵌套函数不被考虑闭合,因为它们不符合以下要求:不访问局部范围scliables to incling scliables在封装范围外执行范围的局部范围。 make_printer(msg): DEF打印机(): 打印(味精) ...
    编程 发布于2025-05-05
  • 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-05-05
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-05-05

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

Copyright© 2022 湘ICP备2022001581号-3