package image.extract; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.util.Vector; import javax.imageio.ImageIO; import music.info.MusicInfo; import org.cmc.music.metadata.IMusicMetadata; import org.cmc.music.metadata.ImageData; import org.cmc.music.metadata.MusicMetadataSet; import org.cmc.music.myid3.MyID3; import util.Constants; public class ImageExactor { public static boolean extract(MusicInfo music) { try { File src = new File(Constants.DOWNLOAD_DIR+music.getFilename()); if(!src.exists()) { System.out.println("file not exists"); return false; } MusicMetadataSet src_set = new MyID3().read(src); // read metadata if (src_set == null) // perhaps no metadata { System.out.println("no metadata"); return false; } IMusicMetadata metadata = src_set.getSimplified(); Vector vector = metadata.getPictures(); if(vector.size() == 0) { System.out.println("no associated image"); return false; } ByteArrayInputStream in = new ByteArrayInputStream(((ImageData)vector.get(0)).imageData); BufferedImage image = ImageIO.read(in); music.setImageName(music.getTitle()+"_img.jpg"); ImageIO.write(image, "JPEG", new File(Constants.DOWNLOAD_DIR+music.getImageName())); return true; /* String artist = metadata.getArtist(); String album = metadata.getAlbum(); String song_title = metadata.getSongTitle(); System.out.println(album); metadata.setArtist("Bob Marley"); File dst = new File(""); new MyID3().write(src, dst, src_set, metadata); // write updated metadata */ } catch (Exception e) { e.printStackTrace(); return false; } } }