How to create a video from a series of images with transition - java

I want to create a video from a series of images and add a transition between the images (e.g., fade in and fade out). I’m looking for a Java solution and not a C++ one (FFmpeg or anything else).
I checked out JCodec and MediaCodec, but none of those support image transitions.

Have you already tried it with OpenCV for Java? OpenCV offers almost everything you need for such a task. To the transitions you would have to worry about then manually with image blending. But that can be solved with OpenCV too. Just take a look at the documentary
EDIT:
It looks like the Java API lacks the appropriate module that can encode a sequence of images. You can fade images in any case. Take a look at the tutorial. This means you would have to crossfade the images with OpenCV and then use another API (e.g. jcodec) to make a video from the images you create.

Related

Image Edit SDK for Android?

I'm working on a project that requires taking pictures and putting stickers on that photo. From what I understand this requires 3 main actions:
1. User should be able to resize the sticker.
2. User should be able to rotate the sticker.
3. And once done, the whole thing should be merged into a single image.
I'm having a really hard time starting this since I simply don't know where I should start. Should I find, or ever write my own code to do the above, or maybe try to use existing projects (but I was not able to find any open-source ones).
I've heard about Aviary, but it was recently purchased by Adobe, and it is now part of the Creative Cloud, which is quite vague regarding the price, if there is any.
Where should I start?
Thanks.
We at Img.ly have released an image editing SDK for Android as part of our PhotoEditorSDK product suite.
Users can resize rotate and adjust stickers out of the box and you can also add your own stickers and assets.
You can find a demo application here. You can use the library for free in your open source projects, but there is a license fee for commercial applications.
For Resizing the image add two buttons one for increasing the image size and the other for decreasing . Then in the set an onClickListener() for that buttons.
Inside that function first get the dimensions of the image using getWidth() and getHeight() , then use setWidth() and setHeight() to change the size.
for Rotating the sticker refer this link
After all these things use a canvas to save the sticker and image as a single file . for doing this refer this link.
In future do not combine all your queries in a single question.
I use these libraries and plugins in my projects
for cropping an image use this : Cropper
for rotating an image you can use this: PhotoProcessing
and at the end you can get the whole image in to a single image-view

What kind of image formats should I use in an Android application?

I'm writing a game for Android and I was wondering what kind of images should I use for the in game graphics.
I told the customer to create the artwork in the highest possible (and reasonable) resolution and I will scale it down but I have been told lately that SVG would be better than plain PNG for example since there are a lot of resolutions used by Android devices and the images have to be scaled. Most of the graphics will be stationary backgorunds or objects but there will be some animations. I will use AnimationDrawable for this.
Is there some general guideline for graphical file formats (I checked out android developer site but didn't find anything) or just go with whatever I have at the moment?
I have been told lately that SVG would be better than plain PNG for example
Android does not support SVG natively. There are third-party libraries that support SVG, such as this one.
since there are a lot of resolutions used by Android devices and the images have to be scaled
If that is literally what your graphic designer told you, you need to hire a different graphic designer. Quickly.
Resolution is typically meaningless. What matters is screen size and, more importantly for graphics, screen density. Android supports multiple versions of an image for different densities, and can also resample images from one density into another, so you can "dial in" how many densities you wish to support directly. Here is a blog post from yesterday regarding screen density, and there is plenty of material in the Android documentation on this as well.
Now, your graphic designer might use SVG "internally" and generate density-scaled PNG files for your use -- that is perfectly reasonable.
Is there some general guideline for graphical file formats
Yes, here. It says
Android supports bitmap files in a three formats: .png (preferred), .jpg (acceptable), .gif (discouraged).
There is no native support for SVG drawables but there are libraries that support SVG
See SVG support on Android
You would typically convert SVG images to pixel images for each density. Android also defines some standard sizes for icons like Menu icons
Having the sources for the images you use as SVG is not a bad idea. SVG and other vector based graphics usually scale better to different sizes than pixel graphics. Especially if you need to enlarge an image (for example for the hi-res icons used in the Play store).
Also be careful with AnimationDrawable, it is not meant to be used for fullscreen animations. Just small animated icons and such.

Breaking a video into predefined chunks

I would like to know how to break a video into frames and store them a collection. I have several cameras that collect at different frame rate and I would like to be able to input the video file as like a .avi or .mp4 and have to work with a collection (probably LinkedList) of frames. Somewhere in the code I would inject the framerate dependency which I can do on my own. I just don't know how to cut up the video. Someone suggested JMF but I am very confused by it. Does anyone know of any examples?
Xuggler is Java library on top of the ffmpeg libraries that makes a task like this relatively easy from Java. Look at the tutorials on the site for a quick start.

Generate photo SlideShow in Java and Export as Video

I want to create a cross platform SlideShow maker desktop-application (mainly Windows & Mac), the SlideShow will be generated using a set of images with background music, subtitles/captions and there will be a transition between each slide/image.
I have done all the UI in swing and it all works superb on Windows & Mac. Now the only "little" problem is
How to generate a video from a set of images with "transitions" & "subtitles" in java using native java libs/frameworks and add some music in background ;-)
I want the video output format to be at least in avi & mov, with transitions like:
1) fade
2) Zoom (images will zoom-in from e.g. 64x64 to full video size)
3) Multiple (multiple images will appear in single slide)
I have used JMF example to generate .mov from .jpeg images it was buggy but may work if I can add transitions?? But it appears JMF is mainly for media playback it only supports a few media formats (for output).
I have also read a few docs of jffmpeg but it appears it too does not support transitions.
I have also tried FMJ but no use, now I am stuck and need assistance, on how this task can be done in java.
I would be immensely thankful if anyone can guide me in right direction.
--
many thanks
I think you can accomplish this task with xuggler. Check it out. It might fit you needs.
Xuggler

Manipulating an image on App Engine

I'm trying to draw text to an image from Java in the Google App engine, but I've found no methods (since the java.awt.image.* isn't whitelisted) to do it with. I'm also trying to "layer" one image on top of another, which I can't figure out how to do.
Is there any way to draw text on an image or overlay one image over another in App Engine using Java? Has anyone found any other solutions to this?
You have to use Google's Images API instead.
Not sure if it can do all you need it to, but it does include image composition.

Categories