【发布时间】:2020-12-23 15:38:49
【问题描述】:
我冒着被this question. 标记为重复的风险我想知道是否有办法使用instabot 库上传垂直图像。到目前为止,我使用以下代码将图像上传到 IG 帐户:
from instabot import Bot
username = "dosisdelpasado"
password = "**************"
image_path = "path/path"
caption = "aun sigo testeando"
bot = Bot()
bot.login(username=username, password=password)
result = bot.upload_photo(image_path,caption= caption)
主要问题是instabot 不区分垂直方向和水平方向的图像,并假设它们都是垂直图像。稍微挖了一下源码,来到api_phot.py里面定义的这个函数,貌似是识别图片的像素大小,分别为get_image_size(fname)和compatible_aspect_ratio(size),不过玩了一会儿代码,我没有解决这个烦人的问题。
如果您能帮助我解决这个问题,那将非常有用。 提前感谢您的宝贵时间!
【问题讨论】:
-
当您尝试将这张图片直接上传到 instagram 时,您是否有同样的问题?也许文件将数据保留为带有标志的水平图像,该标志通知程序将其显示为垂直 - 大多数图像查看器可能会尊重这个标志,但也许 instagram 不尊重它。
-
哦,不,使用常规程序 IG 表现良好。该应用程序以某种方式了解特定图像的方向。但是我很懒惰上传图片,而且我有成千上万的图片,所以我想自动化这个过程,但只能处理水平方向的图片。
-
我要求这个来识别这个问题是否只存在于
instabot或instagram。我觉得我必须用不同的图像测试instabot- 真正的水平,垂直的水平标志 - 看看这是否真的是这个标志的问题。如果这是标志的问题,那么它需要在发送之前将图像从vertical with flag horizontal转换为real vertical的代码。 -
@NicolásMedina 我看到
instabot的宽高比范围为 4:5 (~0.8)(方形纵向)到 90:47 (~1.9)(几乎 2:1 横向) )。您可以在compatible_aspect_ratio()中查看此范围。如果图像比此定义的范围更窄(更纵向)或更宽(更横向),则库将强制调整其大小或不上传照片。您可以做的是更改此范围的最小值 在compatible_aspect_ratio()中定义的纵横比,使其包含垂直图像的纵横比(例如:- 纵横比 -
@skuzzy 感谢您的建议,我尝试修改包含图片尺寸比例的参数,但由于照片在所有情况下都是水平上传的,因此无法正常工作。