import net.coobird.thumbnailator.Thumbnails;
import org.junit.Test;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
/**
* util test
* Created by ggq on 2018/5/7 0007.
*/
public class UtilsTest {
@Test
public void thread() {
System.out.println("hello world." );
}
@Test
public void testRoud() {
Double p = 0.1234567;
System.out.println(Math.round(p * 100) * 1.0 /100);
}
public void commpressPicCycle(String desPath , long desFileSize,
double accuracy) throws IOException {
File imgFile = new File(desPath);
long fileSize = imgFile.length();
//判断大小,如果小于1024K,不压缩,如果大于等于1024K,压缩
if(fileSize <= desFileSize * 1024){
return;
}
//计算宽高
BufferedImage bim = ImageIO.read(imgFile);
int imgWidth = bim.getWidth();
int imgHeight = bim.getHeight();
int desWidth = new BigDecimal(imgWidth).multiply(
new BigDecimal(accuracy)).intValue();
int desHeight = new BigDecimal(imgHeight).multiply(
new BigDecimal(accuracy)).intValue();
Thumbnails.of(desPath).size(desWidth, desHeight).outputQuality(accuracy).toFile(desPath);
//如果不满足要求,递归直至满足小于1M的要求
commpressPicCycle(desPath, desFileSize, accuracy);
}
public void createPicTwo2(int x,int y) {
try
{
//读取第一张图片
File fileOne = new File("F:\\workspace\\AIIDENT\\01开发区\\02设计\\benchmark自动测试平台\\work\\render1.jpg");
BufferedImage ImageOne = ImageIO.read(fileOne);
int width = ImageOne.getWidth();//图片宽度
int height = ImageOne.getHeight();//图片高度
//从图片中读取RGB
int[] ImageArrayOne = new int[width*height];
ImageArrayOne = ImageOne.getRGB(0,0,width,height,ImageArrayOne,0,width);
//对第二张图片做相同的处理
File fileTwo = new File("F:\\workspace\\AIIDENT\\01开发区\\02设计\\benchmark自动测试平台\\work\\render2.jpg");
BufferedImage ImageTwo = ImageIO.read(fileTwo);
int widthTwo = ImageTwo.getWidth();//图片宽度
int heightTwo = ImageTwo.getHeight();//图片高度
int[] ImageArrayTwo = new int[widthTwo*heightTwo];
ImageArrayTwo = ImageTwo.getRGB(0,0,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);
int widthNew = width + widthTwo ;
int heightNew = Math.max(height, heightTwo);
//生成新图片
BufferedImage ImageNew = new BufferedImage(widthNew,heightNew,BufferedImage.TYPE_INT_RGB);
ImageNew.setRGB(0,0,width,height,ImageArrayOne,0,width);//设置左半部分的RGB
// ImageNew.setRGB(0,0,width,height,ImageArrayOne,0,width);//设置左半部分的RGB
ImageNew.setRGB(width,0,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);//设置右半部分的RGB
// ImageNew.setRGB(x*2,y,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);//设置右半部分的RGB
File outFile = new File("F:\\workspace\\AIIDENT\\01开发区\\02设计\\benchmark自动测试平台\\work\\out.png");
File outFile1 = new File("F:\\workspace\\AIIDENT\\01开发区\\02设计\\benchmark自动测试平台\\work\\out1.png");
ImageIO.write(ImageNew, "png", outFile);//写图片
commpressPicCycle(outFile.getAbsolutePath(), 1024, 0.8);
}
catch(Exception e)
{
e.printStackTrace();
}
}
@Test
public void testImageMerge() {
// ImageDraw he = new ImageDraw();
createPicTwo2(1000, 0);
}
}