为什么Twitter要把我用C和Python3制作的图像从PNG转换成JPEG?

2024-05-23 21:12:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程很陌生,一直在开发一个小程序,生成Julia集的图像并上传到我的twitter帐户。实际的图像是用C语言创建的一个PPM文件,Python3脚本会打开该文件并将其保存为PNG文件,然后将其上载到Twitter。这很好,除了Twitter上的图像是JPEG格式,并且有很多伪影。在

我使用ImageMagick的identify-verbose将我的PNG图像与互联网上的另一张进行了比较。我发现的主要区别是我的图像有“Type:Pallete”和另一个PNG的“Type:TrueColorAlpha”。在

我在网上发现有人说,通过改变一个像素的透明度,Twitter没有把PNG转换成JPEG格式,但我很难做到这一点。在

创建PPM文件的C代码部分如下:

FILE *f = fopen("julia.ppm", "wb);
fprintf(f, "P6\n %i 255\n", size, size); /*Size is an int defined previously*/

for(i=0; i<size; i++) {
   for(j=0; j<size; j++) {
      fputc(image[i][j],f);
      fputc(0, f);
      fputc(0, f);
   }
}
fclose(f);

“image”是一个size*size数组,每个元素的值从0到255。在

我的Python3代码将其转换为PNG,如下所示

^{pr2}$

我想能够上传图片到Twitter,并有它作为一个PNG文件,如果可能的话。任何帮助将不胜感激。在

谢谢你!在


Tags: 文件代码图像imageforsizepng格式
1条回答
网友
1楼 · 发布于 2024-05-23 21:12:39

Twitter的上传工具现在(2016年5月)似乎总是强制进行JPEG转换。在

您仍然可以使用API上传PNG,而且有一个工具可以轻松实现这一点:

https://apigee.com/embed/console/twitter

  1. 用你的twitter帐户验证(靠近顶部)
  2. 选择API方法“更新配置文件_图像.json““
  3. 转到“Body”选项卡,将顶部部分向下滚动一点,直到找到图像上载按钮。在
  4. 遵循下面的大小规则(不是API工具中的规则-它们似乎过时了)
  5. 点击“发送”:)

当前规则(和此终结点的文档):

Must be a valid GIF, JPG, or PNG image of less than 700 kilobytes in size. Images with width larger than 400 pixels will be scaled down. Animated GIFs will be converted to a static GIF of the first frame, removing the animation.

来源:https://dev.twitter.com/rest/reference/post/account/update_profile_image

相关问题 更多 >