mirror of
https://gitlab.com/annimon/imagetagger.git
synced 2024-09-20 05:44:20 +03:00
Ability to change background color by pressing F3
This commit is contained in:
parent
8cead6afd6
commit
248a1f1f68
@ -10,6 +10,7 @@ In the configuration file `imagetagger.json` you can declare a directory for ima
|
||||
|
||||
- `Left/Right` — previous/next image
|
||||
- `Enter` — creates/updates .txt file with tags
|
||||
- `F3` — change background color
|
||||
|
||||
## Actual applying tag to image
|
||||
|
||||
|
@ -8,8 +8,9 @@
|
||||
В `cache` можно указать максимальное количество элементов для кэширования в памяти и разрешение, до которого будут уменьшаться фотографии, если они больше заданного. Рекомендую устанавливать здесь значения не больше разрешения монитора. Либо, если на весь экран не планируете разворачивать окно программы, то можно указать ещё меньше.
|
||||
|
||||
**Управление**
|
||||
- Влево/вправо — предыдущее/следующее изображение
|
||||
- Enter — записать теги в текстовый файл
|
||||
- `Влево/вправо` — предыдущее/следующее изображение
|
||||
- `Enter` — записать теги в текстовый файл
|
||||
- `F3` — изменить цвет фона
|
||||
|
||||
**Фильтрация**
|
||||
Есть возможность фильтрации. Например, если в Мурманске живёт друг Петя, то для того, чтобы отметить фотографии с ним, можно задать фильтр:
|
||||
|
@ -3,6 +3,7 @@ package com.annimon.imagetagger.logic;
|
||||
import com.annimon.imagetagger.beans.TagButton;
|
||||
import com.annimon.imagetagger.views.ImagePanel;
|
||||
import com.annimon.imagetagger.views.TagPanel;
|
||||
import java.awt.*;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@ -53,6 +54,9 @@ public class KeyProcessor {
|
||||
imageProcessor.mergeTags(tagPanel.getEnabledTags(), tagPanel.getDisabledTags());
|
||||
imageProcessor.writeTagsToFile();
|
||||
break;
|
||||
case KeyEvent.VK_F3:
|
||||
changeBackground();
|
||||
break;
|
||||
default:
|
||||
final var key = String.valueOf(e.getKeyChar());
|
||||
if (keys.contains(key)) {
|
||||
@ -60,4 +64,26 @@ public class KeyProcessor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void changeBackground() {
|
||||
// It's not necessary to convert color to gray
|
||||
// Just use one of it's color components
|
||||
int r = imagePanel.getBackground().getRed();
|
||||
int gray = r;
|
||||
final int[] colors = {0, 40, 64, 128, 192, 236, 255};
|
||||
for (int i = 0; i < colors.length; i++) {
|
||||
if (r >= colors[i]) {
|
||||
int index = i + 1;
|
||||
if (index >= colors.length) {
|
||||
index = 0;
|
||||
}
|
||||
gray = colors[index];
|
||||
}
|
||||
}
|
||||
final var bg = new Color(gray, gray, gray);
|
||||
imagePanel.setBackground(bg);
|
||||
imagePanel.repaint();
|
||||
tagPanel.setBackground(bg);
|
||||
tagPanel.repaint();
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,9 @@ public class ImagePanel extends Component {
|
||||
final var g2d = (Graphics2D) g;
|
||||
final int width = getWidth();
|
||||
final int height = getHeight();
|
||||
g.setColor(getBackground());
|
||||
g.fillRect(0, 0, width, height);
|
||||
|
||||
final var resizableImage = imageProcessor.getImage();
|
||||
if ((width <= 5) || (height <= 5) || (resizableImage == null)) {
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user