inputs and colorChange
This commit is contained in:
1 parent
efa0176163
commit
3105bc2fe8
5 files changed
+24
-19
No files matched your search
@@ -38,6 +38,7 @@ public class AlgorithmController {
|
||||
private final static List<Algorithm> algorithmList() {
|
||||
final String[] borderTypes = { "SKIP", "ZERO", "NORMALIZED", "REFLECT", "EXTENDED", "WRAP" };
|
||||
final String[] fillingTypes = { "SKIP", "CONVOLUTION", "LEFT", "RIGHT", "TOP", "BOTTOM" };
|
||||
final String[] newColors = { "RED", "GREEN", "BLUE", "YELLOW", "CYAN", "MAGENTA", "GREY" };
|
||||
ArrayList<Algorithm> algorithms = new ArrayList<Algorithm>();
|
||||
algorithms.add(new Algorithm("Changement de luminosité", "changeLuminosity",
|
||||
Arrays.asList(new IntegerParameter("Delta", "delta", -255, 255, 1)),
|
||||
@@ -109,7 +110,7 @@ public class AlgorithmController {
|
||||
algorithms.add(new Algorithm("Changement de coloration", "changeColoration",
|
||||
Arrays.asList(new ColorParameter("Couleur à changer", "colorToChange"),
|
||||
new IntegerParameter("Tolerance", "tolerance", 0, 255, 1),
|
||||
new ColorParameter("Couleur de remplacement", "colorToReplace"),
|
||||
new SelectParameter("Couleur de remplacement", "colorToReplace", newColors),
|
||||
new BooleanParameter("Garder la couleur ?", "keep")),
|
||||
(Planar<GrayU8> input, List<Object> para) -> {
|
||||
ImageProcessing.changeColoration(input, (String) para.get(0), (int) para.get(1),
|
||||
|
||||
@@ -909,22 +909,22 @@ public final class ImageProcessing {
|
||||
|
||||
int deltaColor = 0;
|
||||
switch (newColor) {
|
||||
case "red":
|
||||
case "RED":
|
||||
deltaColor = 0;
|
||||
break;
|
||||
case "yellow":
|
||||
case "YELLOW":
|
||||
deltaColor = 60;
|
||||
break;
|
||||
case "green":
|
||||
case "GREEN":
|
||||
deltaColor = 120;
|
||||
break;
|
||||
case "cyan":
|
||||
case "CYAN":
|
||||
deltaColor = 180;
|
||||
break;
|
||||
case "blue":
|
||||
case "BLUE":
|
||||
deltaColor = 240;
|
||||
break;
|
||||
case "magenta":
|
||||
case "MAGENTA":
|
||||
deltaColor = 300;
|
||||
break;
|
||||
default:
|
||||
@@ -967,7 +967,7 @@ public final class ImageProcessing {
|
||||
if (test1 || test2) {
|
||||
continue;
|
||||
} else {
|
||||
if (newColor == "grey") {
|
||||
if (newColor == "GREY") {
|
||||
int gl = 0;
|
||||
double coeff[] = { 0.3, 0.59, 0.11 };
|
||||
|
||||
|
||||
@@ -57,6 +57,10 @@ export default defineComponent({
|
||||
return;
|
||||
const filter = this.filters[this.filterSelectId];
|
||||
for (const arg of filter.parameters) {
|
||||
if (arg.type === FilterType.boolean && arg.value === undefined)
|
||||
arg.value = false;
|
||||
if (arg.type === FilterType.color && arg.value === undefined)
|
||||
arg.value = "#000000";
|
||||
if (arg.type !== FilterType.area && arg.value === undefined) {
|
||||
this.error = "Un paramètre n'a pas été renseigné";
|
||||
return;
|
||||
@@ -66,12 +70,14 @@ export default defineComponent({
|
||||
this.$emit("applyFilter", filter);
|
||||
},
|
||||
areInputValid() {
|
||||
for (const p of this.filters[this.filterSelectId].parameters) {
|
||||
const input = document.getElementById(p.name) as HTMLInputElement;
|
||||
if (input === null)
|
||||
return "";
|
||||
if (!input.checkValidity())
|
||||
return "Paramètre(s) du filtre invalide(s)";
|
||||
console.log(this.filters[this.filterSelectId])
|
||||
for (let p of this.filters[this.filterSelectId].parameters) {
|
||||
console.log(p.path);
|
||||
const input = document.getElementById(p.path) as HTMLInputElement;
|
||||
console.log(input);
|
||||
if (input !== null)
|
||||
if (!input.checkValidity())
|
||||
return "Paramètre(s) du filtre invalide(s)";
|
||||
}
|
||||
return "";
|
||||
},
|
||||
@@ -139,7 +145,7 @@ export default defineComponent({
|
||||
<div class="labelInput">
|
||||
<label>{{ parameter.name }}: </label>
|
||||
<input type="number" :min="(parameter as RangeParameters).min" :max="(parameter as RangeParameters).max"
|
||||
:step="(parameter as RangeParameters).step" v-model.number="parameter.value" :id="parameter.name" />
|
||||
:step="(parameter as RangeParameters).step" v-model.number="parameter.value" :id="parameter.path" />
|
||||
</div>
|
||||
<input type="range" :min="(parameter as RangeParameters).min" :max="(parameter as RangeParameters).max"
|
||||
:step="(parameter as RangeParameters).step" v-model.number="(parameter as RangeParameters).value" />
|
||||
@@ -163,7 +169,8 @@ export default defineComponent({
|
||||
</div>
|
||||
</div>
|
||||
<button :style="{ background: styledProgress() }" @mouseenter="error = areInputValid()"
|
||||
@mouseleave="error = areInputValid()" class="button" @click="applyFilter()">{{ titleApply() }}</button>
|
||||
@mouseleave="error = areInputValid()" class="button" @click="applyFilter()" :disabled="sent">
|
||||
{{ titleApply() }}</button>
|
||||
<button v-if="imageFiltered !== -1" class="button" @click="deleteFilter()">Supprimer les filtres</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -112,7 +112,6 @@ export class Filter {
|
||||
}
|
||||
|
||||
export function getParameters(f: Filter): string {
|
||||
console.log(f);
|
||||
return '&' + f.parameters.map((param) => {
|
||||
switch (param.type) {
|
||||
case FilterType.range:
|
||||
|
||||
@@ -2,8 +2,6 @@ import axios, { AxiosResponse, AxiosError, HttpStatusCode } from 'axios';
|
||||
import { ImageType } from '@/image';
|
||||
import { Filter, getParameters } from './filter';
|
||||
|
||||
type area = { xmin: number, ymin: number, xmax: number, ymax: number }
|
||||
|
||||
interface stateInterface {
|
||||
skipped: boolean;
|
||||
interrupted: boolean;
|
||||
|
||||
Reference in new issue
Block a user