💳Благодарим за поддержку
Троецарствие | https://gitee.com/zoy1985 |
---|
Благодарим за предоставленный код
Чжоу Вэй | https://gitee.com/bejson |
---|
GIF-сжатие (https://gitee.com/xshuai/imagetool/blob/master/src/main/java/cn/xsshome/imagetool/util/GifImageUtil.java)
Автор | https://img.shields.io/badge/%E4%BD%9C%E8%80%85-%E5%B0%8F%E5%B8%85%E4%B8%B6-7AD6FD.svg |
---|
Подписывайтесь на обновления от Кода Малыша
├── cn.xsshome.imagetool //пакет
├── convert
│ └── ImageToChar //преобразование изображения в символы
├── slideverifycode
│ └── SlideVerifyCodeGenerateUtil //инструмент для генерации кода с ползунка
│ └── SlideVerifyCode //код с ползунка
├── util
│ └── AnimatedGifEncoder //необходимые инструменты для GIF
│ └── Base64Util //инструменты для преобразования данных изображения в base64
│ └── GifDecoder //обработка изображений GIF
│ └── GifImageUtil //добавление текста к изображениям GIF
│ └── GongGeUtil //обработка девятисегментных изображений
│ └── LZWEncoder //необходимые инструменты для обработки изображений
│ └── MergeImageUtil //объединение эффектов изображений
│ └── NeuQuant //необходимые инструменты для обработки изображений
│ └── PngColoringUtil //добавление фона к прозрачным изображениям
│ └── RotateImageUtil //поворот изображений
│ └── ImageLosslessUtil //сохранение изображений без потерь
│ └── MergeImageFontUtil //объединение шрифтов и изображений
│ └── ImageGrayUtil //преобразование изображений в оттенки серого
│ └── ImageDPIHandleUtil //изменение DPI изображений (поддерживает только JPG)
│ └── ImagePixelUtil //пиксельные эффекты изображений
│ └── ImageWaterMarkUtil //добавление водяных знаков к изображениям
└── zoom
└── ImageHelper //масштабирование изображений
public class Sample {
public static void main(String[] args) throws Exception {
ImageToChar.load("G:/phone.jpg", "F:/gif/woman.txt");//статическое изображение преобразуется в текст и сохраняется в txt-файл
ImageToChar.loadGif("C:/Users/Administrator/Desktop/页面录屏显示.gif", "F:/gif/");//динамическое изображение преобразуется в динамическое изображение символов
BufferedImage bi = null;
bi = ImageIO.read(new File("G:/body.jpg"));
String bytePic = ImageToChar.txtToImageByBase64(bi);//статическое изображение преобразуется в текстовый формат и возвращается как base64-изображение
System.out.println(bytePic);
}
}
public static void main(String[] args) throws Exception{
String image = "F:\\testimg\\1011.png";//путь к исходному изображению
String resultImage = "F:\\testimg\\10111700.jpg";//путь сохранения обработанного изображения
changePNGBackgroudColor(image,resultImage, Color.pink);//Цвет.розовый - цвет фона изображения
}
public class RotateSample {
public static void main(String[] args) throws Exception {
long start = System.currentTimeMillis();
BufferedImage src = ImageIO.read(new File("E:\\testimg\\glassess.png"));//исходное изображение
BufferedImage des = RotateImageUtil.rotateImage(src,20);//угол поворота
ImageIO.write(des, "png", new File("E:\\testimg\\glassess2.png"));//сохранение повернутого изображения
long end = System.currentTimeMillis();
System.out.println("Начало времени:" + start+ "; 结束时间:" + end+ "; 总共用时:" + (end - start) + "(ms)");
}
}
public static void main(String[] args) throws Exception {
GifImageUtil gifImageUtil = new GifImageUtil();
String imagesavePath = "C:\\Users\\xiaoshuai\\Desktop";//путь сохранения изображения
String imagesaveName = String.valueOf(System.currentTimeMillis());//имя файла без расширения
String image = "C:\\Users\\xiaoshuai\\Desktop\\db.gif";//исходное изображение
String result = gifImageUtil.gifAddText(imagesavePath,imagesaveName,"微软雅黑",25,Color.pink,image,"Добавление текста к изображению","Тестирование","1234","4567");
System.out.println(result);
}
public static void main(String[] args) {
System.out.println(PngConvertUtil.transparentImg("F:/testimg/hand.jpg",
``` **Увеличение водяных знаков: примеры кода**
public static void main(String[] args) { // Водяной знак — изображение в указанной позиции BufferedImage image1 = ImageWaterMarkUtil.addImgWaterMark("F:/testimg/hand2020.png")); File file = new File("F:\testimg\2020082701.jpg"); ImageIO.write(image1, "jpg", file); // Текстовый водяной знак заполняет всё изображение BufferedImage image2 = ImageWaterMarkUtil.addFullTextWaterMark("F://testimg//gjy2.jpg","小帅丶代码"); File file2 = new File("F:\testimg\2020082702.jpg"); ImageIO.write(image2, "jpg", file2); // Иконка водяного знака заполняет всё изображение BufferedImage image3 = ImageWaterMarkUtil.addFullImgWaterMark("F://testimg//gjy2.jpg","F://testimg//water.png"); File file3 = new File("F:\testimg\2020082703.jpg"); ImageIO.write(image3, "jpg", file3); }
**GIF-изображение с добавленными спецэффектами текста:**
* Исходное изображение:

* Преобразованное изображение:

**Добавление прямоугольной рамки к изображению:**
* Исходное изображение:

* Обработанное изображение:

**Наложение фонового изображения на прозрачное:**
public static void main(String[] args) throws Exception{
// Лучше всего сохранить ширину или высоту одинаковой
BufferedImage src = ImageIO.read(new File("F:\testimg\gjy2.jpg"));// Фоновое изображение
BufferedImage png = ImageIO.read(new File("F:\testimg\banner.png"));// Прозрачное изображение
BufferedImage image = MergeImageUtil.mergePendant(src, png, 0, 0, 1);
File file = new File("F:\testimg\banner320.jpg");// Путь сохранения изображения
ImageIO.write(image, "jpg", file);
}
* Прозрачное изображение:

* Фоновое изображение:

* Результат:

**Добавление водяных знаков к изображениям:**
* Оригинальное изображение:

* Текст:
小帅丶代码
* Изображение водяного знака (можно увидеть содержимое PNG-изображения, нажав на пустое место):

* Добавление текстового водяного знака, который заполняет всё изображение:

* Добавление изображения водяного знака, которое заполняет всё изображение:

* Добавление водяного знака изображения в указанную позицию:

**Добавление текста к изображению (устранение зубчатости и сохранение без потерь):**
public class FontImgMergeSample { /** Шрифт / private static String FONT_FAMILY = "方正粗黑宋简体"; /* Размер шрифта / private static Integer FONT_SIZE = 88; /* Цвет */ private static Color FONT_COLOR = new Color(255,255,255);
public static void main(String[] args) throws Exception{
long startTime = System.currentTimeMillis();
// Путь исходного изображения, путь сохранения обработанного изображения
String sourcePath = "F:\\testfile\\testimg\\banner.jpg";
String targetPath = "F:\\testfile\\testimg\\mergebanner.jpg";
BufferedImage image = ImageIO.read(new File(sourcePath));
// Текст
String content = "小帅测试代码";
Graphics2D g = (Graphics2D) image.getGraphics();
// Заполнение текста слева направо
MergeImageFontUtil.setContentToImgLR(content, g, 100, 200,FONT_FAMILY,FONT_SIZE,FONT_COLOR);
ImageLosslessUtil.saveLosslessImage(image, targetPath, ImageType.IMAGE_TYPE_JPG);
System.out.println("Общее время:"+(System.currentTimeMillis()-startTime));
}
}
* Оригинальное изображение:
[Исходное изображение](src/main/files/banner.jpg)
* Обработанное изображение:
[Обработанное изображение](src/main/files/mergebanner.jpg)
**Обработка изображений в градациях серого:**
В тексте запроса не представлен код для обработки изображений в градации серого. ```
ImageGrayUtil.grayImage3ByteBGR(sourcePath);
// 图片灰度处理 纯黑
BufferedImage bufferedImage = ImageGrayUtil.grayImageByteGRAY(sourcePath);
// 无压缩保存图片
ImageLosslessUtil.saveLosslessImage(bufferedImage, targetPath, imageSuffix);
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )