package com.luck.picture.lib.compress; import java.io.Serializable; /** * author:luck * project:PictureSelector * email:893855882@qq.com * data:16/12/31 */ public class CompressConfig implements Serializable { /** * 长或宽不超过的最大像素,单位px */ private int maxPixel = 1200; /** * 压缩到的最大大小,单位B */ private int maxSize = 100 * 1024; /** * 是否启用像素压缩 */ private boolean enablePixelCompress = true; /** * 是否启用质量压缩 */ private boolean enableQualityCompress = true; /** * 是否保留原文件 */ private boolean enableReserveRaw = true; /** * Luban压缩配置 */ private LubanOptions lubanOptions; public static CompressConfig ofDefaultConfig() { return new CompressConfig(); } public static CompressConfig ofLuban(LubanOptions options) { return new CompressConfig(options); } private CompressConfig() { } private CompressConfig(LubanOptions options) { this.lubanOptions = options; } public LubanOptions getLubanOptions() { return lubanOptions; } public int getMaxPixel() { return maxPixel; } public CompressConfig setMaxPixel(int maxPixel) { this.maxPixel = maxPixel; return this; } public int getMaxSize() { return maxSize; } public void setMaxSize(int maxSize) { this.maxSize = maxSize; } public boolean isEnablePixelCompress() { return enablePixelCompress; } public void enablePixelCompress(boolean enablePixelCompress) { this.enablePixelCompress = enablePixelCompress; } public boolean isEnableQualityCompress() { return enableQualityCompress; } public void enableQualityCompress(boolean enableQualityCompress) { this.enableQualityCompress = enableQualityCompress; } public boolean isEnableReserveRaw() { return enableReserveRaw; } public void enableReserveRaw(boolean enableReserveRaw) { this.enableReserveRaw = enableReserveRaw; } public static class Builder { private CompressConfig config; public Builder() { config = new CompressConfig(); } public Builder setMaxSize(int maxSize) { config.setMaxSize(maxSize); return this; } public Builder setMaxPixel(int maxPixel) { config.setMaxPixel(maxPixel); return this; } public Builder enablePixelCompress(boolean enablePixelCompress) { config.enablePixelCompress(enablePixelCompress); return this; } public Builder enableQualityCompress(boolean enableQualityCompress) { config.enableQualityCompress(enableQualityCompress); return this; } public Builder enableReserveRaw(boolean enableReserveRaw) { config.enableReserveRaw(enableReserveRaw); return this; } public CompressConfig create() { return config; } } }