gpt4 book ai didi

java - 从网络摄像头代码将图片上传到 Twitter 每次都上传相同的照片

转载 作者:行者123 更新时间:2023-11-30 07:40:14 25 4
gpt4 key购买 nike

我是编码方面的初学者,但我已经成功编写了一个程序,当建立 arduino 连接时,该程序会自动在连接的网络摄像头上拍照并将该镜头直接上传到 Twitter 页面。

我现在遇到的问题是,每次我触发连接时,它都会上传我每次拍摄/上传的第一张照片,而不是相机当前正在查看的新照片。

我不知道如何解决这个问题,任何帮助将不胜感激。

这是我的代码:

import twitter4j.conf.*;
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.api.*;

import java.util.*;
import processing.video.*;

import processing.serial.*;

int picCount = 0;
Capture webcam;
Twitter twitter;

Serial myPort; // The serial port
String inString; // Input string from serial port
int lf = 10; // ASCII linefeed

void setup()
{

size(640, 480);
webcam = new Capture(this, 640, 480);
String[] devices = Capture.list();
println(devices);
webcam.start();

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey("****");
cb.setOAuthConsumerSecret("****");
cb.setOAuthAccessToken("****");
cb.setOAuthAccessTokenSecret("****");

TwitterFactory tf = new TwitterFactory(cb.build());

twitter = tf.getInstance();

myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil(lf);
}

void draw()
{

if (webcam.available() == true) {
webcam.read();
image(webcam, 0, 0);
}



if (inString != null) {

inString = inString.trim();

int val = int(inString);



if (val == 1) {

println("saving...");
save("cam" + picCount + ".png");
picCount++;

//send tweet
File file = new File("C:\\Users\\Jake\\Documents\\Processing\\Twitter test 2\\Twittertest2\\cam" + picCount + ".png");

delay (3000);
tweetPic(file, "");
}
}
}


void testPassingFile(File _file)
{
println(_file.exists());
println(_file.getName());
println(_file.getPath());
println(_file.canRead());
}


void tweetPic(File _file, String theTweet)
{
try
{
StatusUpdate status = new StatusUpdate(theTweet);
status.setMedia(_file);
twitter.updateStatus(status);
}
catch (TwitterException te)
{
println("Error: "+ te.getMessage());
}
}

void serialEvent(Serial p) {
inString = p.readString();
}

最佳答案

这里有一件没有意义的事情:

save("cam" + picCount + ".png"); //picCount is 3 here, you save cam3.png
picCount++; //picCount is now 4
File file = new File("C:\\Users\\Jake\\Documents\\Processing\\Twitter test 2\\Twittertest2\\cam" + picCount + ".png"); //but you send cam4.png

请注意,您正在递增 picCount 加载用于发布推文的文件之前。这没有多大意义——具有该名称的文件甚至还不存在!

通过将增量移至底部来解决该问题。如果这不能解决您的问题,那么您必须真正确保 save("cam" + picCount + ".png"); 保存的文件。是为发推文而加载的相同文件。从您的代码现在的工作方式来看,它们看起来像是位于不同的目录中。

尝试使用 save("WeirdFileName.png") 保存一个奇怪的文件名看看它出现在哪里。它是否位于您加载文件的同一目录中?

关于java - 从网络摄像头代码将图片上传到 Twitter 每次都上传相同的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com