无法在 Cloudinary 上获取远程媒体

Posted

技术标签:

【中文标题】无法在 Cloudinary 上获取远程媒体【英文标题】:Couldn't fetch remote media on Cloudinary 【发布时间】:2021-10-30 09:23:22 【问题描述】:

我想在 Cloudinary 中的 smaple.jpg 上覆盖远程媒体。但是:type=>"fetch" 不起作用,图像也不会显示。

只需阅读Document,但这不适用于当前案例。

<%= cl_image_tag(
  "ogp.png", 
  :transformation=>[
    :color=> '#fff', :overlay=>:color=> "#ffffff", :font_family => 'Open Sans', :font_size=> 20, :text_align=> 'center', :text=> @channel.user.name,,
    :flags=>"layer_apply", :gravity=>"north", :y=>90,
    :type=> 'fetch',
    :overlay=> Base64.encode64('https://[PUBLI IMAGE URL].jpg'), :type=>"fetch",
  ],
) %>

=> https://res-4.cloudinary.com/remotehour/image/upload/co_rgb:fff,l_text:Open%20Sans_20_center:Shun/fl_layer_apply,g_north,y_90/l_aHRXXXXXXXXXXXXXXXXXwMC5qcGc=/sampple.jpg

【问题讨论】:

【参考方案1】:

您需要使用 url 参数指定图像,而不是使用 base64 编码版本。您无需指定 fetch,因为 SDK 会自动处理它。你可以找到一个例子here。

这里是 Python 中的代码,因为我对 php 不太熟悉。

import cloudinary

resp = cloudinary.CloudinaryImage('sample').image(
    transformation = [
        "overlay": "text": "hi",'font_family': 'roboto', 'font_size':30,'gravity': 'north_west','x':20,'y':20,'color':'blue',
        "overlay": 'url': 'https://images.pexels.com/photos/3948546/pexels-photo-3948546.png','gravity':'south_east','width':250,'height':250,'crop':'fill','x':10,'y':10
    ]
)
print(resp)

这将生成一个图像,左上角有文字,右下角有叠加图像。

输出网址:https://res.cloudinary.com/akshayranganath/image/upload/co_blue,g_north_west,l_text:roboto_30:hi,x_20,y_20/c_fill,g_south_east,h_250,l_fetch:aHR0cHM6Ly9pbWFnZXMucGV4ZWxzLmNvbS9waG90b3MvMzk0ODU0Ni9wZXhlbHMtcGhvdG8tMzk0ODU0Ni5wbmc=,w_250,x_10,y_10/sample

【讨论】:

非常感谢您的友好回答。真的很有帮助!!但是尝试&lt;%= cl_image_tag("sample.jpg", :overlay=&gt;:url=&gt;"https://res.cloudinary.com/demo/image/upload/logos/cloudinary_full_logo_white_small.png") %&gt;时出现错误Must supply public_id for resource_type layer_parameter 您不能在overlay 中使用url。您需要提供资源的public_id,例如:cl_image_tag("sample.jpg", :overlay=&gt;"overlayPublicId")请查看相关文档-cloudinary.com/documentation/layers

以上是关于无法在 Cloudinary 上获取远程媒体的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC 不显示远程媒体

无法使用 ios 10 中的通知服务扩展在远程通知中附加媒体

远程计算机上的媒体播放器的远程控制(从网页)?

Parse-Server - 无法从远程机器上的数据库中获取数据

Cloudinary::CarrierWave 如何在 Cloudinary 中选择上传文件夹

启动远程程序时出错:无法获取进程 699 的任务