Skip to content

Commit 0f4c9c7

Browse files
committed
drawHistogram is called in all funtions before drawCanvas
1 parent 1c44546 commit 0f4c9c7

File tree

4 files changed

+30
-4
lines changed

4 files changed

+30
-4
lines changed

build/bitmap.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,8 @@ define(["require", "exports", "./histogram", "./transform", "./filter"], functio
691691
properties[3].innerHTML = (this._bitmap.header.size / (1024 * 1024));
692692
};
693693
Bitmap.prototype.drawHistogram = function (canvas_r, canvas_g, canvas_b, canvas_avg) {
694+
this._histogram = new histogram_1.Histogram();
695+
this._histogram.fillAll(this._bitmap.current.data);
694696
if (!this._grayScale) {
695697
canvas_avg.style.display = "none";
696698
canvas_r.style.display = "block";

build/main.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,12 @@ define(["require", "exports", "./bitmap"], function (require, exports, bitmap_1)
122122
var scaleHeight = +document.getElementById("scaleHeight").value;
123123
if (document.getElementsByName("algorithm")[0].checked) {
124124
bmp.scale(scaleWidth, scaleHeight, "neighbor");
125+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
125126
bmp.drawOnCanvas(canvas);
126127
}
127128
else {
128129
bmp.scale(scaleWidth, scaleHeight, "interpolation");
130+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
129131
bmp.drawOnCanvas(canvas);
130132
}
131133
});
@@ -138,24 +140,28 @@ define(["require", "exports", "./bitmap"], function (require, exports, bitmap_1)
138140
var input = +document.getElementById("inputKernel").value;
139141
bmp.kernel(input, input);
140142
bmp.blur("box");
143+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
141144
bmp.drawOnCanvas(canvas);
142145
});
143146
document.getElementById("gaussBlur").addEventListener("click", function () {
144147
var input = +document.getElementById("inputKernel").value;
145148
bmp.kernel(input, input);
146149
bmp.blur("gauss");
150+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
147151
bmp.drawOnCanvas(canvas);
148152
});
149153
document.getElementById("prewittEdge").addEventListener("click", function () {
150154
var input = +document.getElementById("inputKernel").value;
151155
bmp.kernel(3, 3);
152156
bmp.edge("prewitt");
157+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
153158
bmp.drawOnCanvas(canvas);
154159
});
155160
document.getElementById("sobelEdge").addEventListener("click", function () {
156161
var input = +document.getElementById("inputKernel").value;
157162
bmp.kernel(3, 3);
158163
bmp.edge("sobel");
164+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
159165
bmp.drawOnCanvas(canvas);
160166
});
161167
document.getElementById("customFilter").addEventListener("click", function () {
@@ -185,15 +191,20 @@ define(["require", "exports", "./bitmap"], function (require, exports, bitmap_1)
185191
document.getElementById("custom").style.display = "none";
186192
bmp.kernel(input, input, custom);
187193
bmp.customFilter();
194+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
188195
bmp.drawOnCanvas(canvas);
189196
});
190197
});
191198
document.getElementById("undo").addEventListener("click", function () {
192-
if (bmp.undo())
199+
if (bmp.undo()) {
200+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
193201
bmp.drawOnCanvas(canvas, true);
202+
}
194203
});
195204
document.getElementById("redo").addEventListener("click", function () {
196-
if (bmp.redo())
205+
if (bmp.redo()) {
206+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
197207
bmp.drawOnCanvas(canvas, true);
208+
}
198209
});
199210
});

src/bitmap.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,8 @@ export class Bitmap {
779779
}
780780

781781
public drawHistogram(canvas_r: HTMLCanvasElement, canvas_g: HTMLCanvasElement, canvas_b: HTMLCanvasElement, canvas_avg: HTMLCanvasElement) {
782+
this._histogram = new Histogram();
783+
this._histogram.fillAll(this._bitmap.current.data);
782784
if (!this._grayScale) {
783785
canvas_avg.style.display = "none";
784786
canvas_r.style.display = "block";

src/main.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,12 @@ document.getElementById("scaleBtn").addEventListener("click", () => {
153153
if ((<HTMLInputElement> document.getElementsByName("algorithm")[0]).checked) {
154154
// neighbor algorithm
155155
bmp.scale(scaleWidth, scaleHeight, "neighbor");
156+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
156157
bmp.drawOnCanvas(canvas);
157158
} else {
158159
// interpolation algorithm
159160
bmp.scale(scaleWidth, scaleHeight, "interpolation");
161+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
160162
bmp.drawOnCanvas(canvas);
161163
}
162164
});
@@ -175,6 +177,7 @@ document.getElementById("boxBlur").addEventListener("click", () => {
175177

176178
bmp.kernel(input, input);
177179
bmp.blur("box");
180+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
178181
bmp.drawOnCanvas(canvas);
179182
});
180183

@@ -184,6 +187,7 @@ document.getElementById("gaussBlur").addEventListener("click", () => {
184187

185188
bmp.kernel(input, input);
186189
bmp.blur("gauss");
190+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
187191
bmp.drawOnCanvas(canvas);
188192
});
189193

@@ -193,6 +197,7 @@ document.getElementById("prewittEdge").addEventListener("click", () => {
193197

194198
bmp.kernel(3, 3);
195199
bmp.edge("prewitt");
200+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
196201
bmp.drawOnCanvas(canvas);
197202
});
198203

@@ -202,6 +207,7 @@ document.getElementById("sobelEdge").addEventListener("click", () => {
202207

203208
bmp.kernel(3, 3);
204209
bmp.edge("sobel");
210+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
205211
bmp.drawOnCanvas(canvas);
206212
});
207213

@@ -237,18 +243,23 @@ document.getElementById("customFilter").addEventListener("click", () => {
237243
document.getElementById("custom").style.display = "none";
238244
bmp.kernel(input, input, custom);
239245
bmp.customFilter();
246+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
240247
bmp.drawOnCanvas(canvas);
241248
});
242249
});
243250

244251
// undo
245252
document.getElementById("undo").addEventListener("click", () => {
246-
if (bmp.undo())
253+
if (bmp.undo()) {
254+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
247255
bmp.drawOnCanvas(canvas, true);
256+
}
248257
});
249258

250259
// redo
251260
document.getElementById("redo").addEventListener("click", () => {
252-
if (bmp.redo())
261+
if (bmp.redo()) {
262+
bmp.drawHistogram(histogram_r, histogram_g, histogram_b, histogram_avg);
253263
bmp.drawOnCanvas(canvas, true);
264+
}
254265
});

0 commit comments

Comments
 (0)