You need to use ImageUpload class in twitter4j. The below code describes a typical scenario for image upload with text.
AccessToken accessToken = twitterSession.getAccessToken();
ConfigurationBuilder conf = new ConfigurationBuilder();
conf.setOAuthConsumerKey(twitter_consumer_key);
conf.setOAuthConsumerSecret(twitter_secret_key);
conf.setUseSSL(true);
conf.setHttpReadTimeout(2400000);
conf.setHttpStreamingReadTimeout(2400000);
conf.setOAuthAccessToken(accessToken.getToken());
conf.setOAuthAccessTokenSecret(accessToken.getTokenSecret());
conf.setMediaProviderAPIKey(twitpic_api_key);
Configuration configuration = conf.build();
OAuthAuthorization auth = new OAuthAuthorization(configuration);
ImageUpload uploader = new ImageUploadFactory(configuration)
.getInstance(auth);
File photo=new File("abc/myimage.png");
String status="Checkout my new image";
uploader.upload(photo,status);
2
solved How to upload image and status to twitter using twitter4j