Lines Matching defs:filter

8  * A namespace for image filter utilities.
10 var filter = {};
13 * Create a filter from name and options.
15 * @param {string} name Maps to a filter method name.
16 * @param {Object} options A map of filter-specific options.
19 filter.create = function(name, options) {
20 var filterFunc = filter[name](options);
31 * Apply a filter to a image by splitting it into strips.
41 filter.applyByStrips = function(
73 ImageUtil.trace.reportTimer('filter-commit');
79 ImageUtil.trace.resetTimer('filter-commit');
90 filter.getHistogram = function(source) {
131 filter.precompute = function(maxArg, func) {
151 filter.mapPixels = function(rMap, gMap, bMap, dst, src, offsetX, offsetY) {
181 filter.FIXED_POINT_SHIFT = 16;
187 filter.MAX_FLOAT_VALUE = 0x7FFFFFFF >> filter.FIXED_POINT_SHIFT;
194 filter.floatToFixedPoint = function(x) {
197 return (x * (1 << filter.FIXED_POINT_SHIFT)) >> 0;
216 filter.convolve5x5 = function(weights, dst, src, offsetX, offsetY) {
217 var w0 = filter.floatToFixedPoint(weights[0]);
218 var w1 = filter.floatToFixedPoint(weights[1]);
219 var w2 = filter.floatToFixedPoint(weights[2]);
220 var w3 = filter.floatToFixedPoint(weights[3]);
239 if (filter.FIXED_POINT_SHIFT != 16)
289 filter.getAverageColor = function(imageData) {
317 filter.getWeightedAverageColor = function(imageData) {
350 * Copy part of src image to dst, applying matrix color filter on-the-fly.
361 filter.colorMatrix3x3 = function(matrix, dst, src, offsetX, offsetY) {
362 var c11 = filter.floatToFixedPoint(matrix[0]);
363 var c12 = filter.floatToFixedPoint(matrix[1]);
364 var c13 = filter.floatToFixedPoint(matrix[2]);
365 var c21 = filter.floatToFixedPoint(matrix[3]);
366 var c22 = filter.floatToFixedPoint(matrix[4]);
367 var c23 = filter.floatToFixedPoint(matrix[5]);
368 var c31 = filter.floatToFixedPoint(matrix[6]);
369 var c32 = filter.floatToFixedPoint(matrix[7]);
370 var c33 = filter.floatToFixedPoint(matrix[8]);
386 if (filter.FIXED_POINT_SHIFT != 16)
432 * Return a convolution filter function bound to specific weights.
436 * @return {function(ImageData,ImageData,number,number)} Convolution filter.
438 filter.createConvolutionFilter = function(weights) {
458 if (maxWeightedSum > filter.MAX_FLOAT_VALUE)
461 return filter.convolve5x5.bind(null, normalized);
465 * Creates matrix filter.
467 * @return {function(ImageData,ImageData,number,number)} Matrix filter.
469 filter.createColorMatrixFilter = function(matrix) {
475 if (maxRowSum > filter.MAX_FLOAT_VALUE)
479 return filter.colorMatrix3x3.bind(null, matrix);
483 * Return a blur filter.
485 * @return {function(ImageData,ImageData,number,number)} Blur filter.
487 filter.blur = function(options) {
489 return filter.createConvolutionFilter(
492 return filter.createConvolutionFilter(
495 return filter.createConvolutionFilter(
500 * Return a sharpen filter.
502 * @return {function(ImageData,ImageData,number,number)} Sharpen filter.
504 filter.sharpen = function(options) {
506 return filter.createConvolutionFilter(
509 return filter.createConvolutionFilter(
512 return filter.createConvolutionFilter(
517 * Return an exposure filter.
519 * @return {function(ImageData,ImageData,number,number)} Exposure filter.
521 filter.exposure = function(options) {
522 var pixelMap = filter.precompute(
534 return filter.mapPixels.bind(null, pixelMap, pixelMap, pixelMap);
538 * Return a color autofix filter.
540 * @return {function(ImageData,ImageData,number,number)} Autofix filter.
542 filter.autofix = function(options) {
543 return filter.mapPixels.bind(null,
544 filter.autofix.stretchColors(options.histogram.r),
545 filter.autofix.stretchColors(options.histogram.g),
546 filter.autofix.stretchColors(options.histogram.b));
555 filter.autofix.stretchColors = function(channelHistogram) {
556 var range = filter.autofix.getRange(channelHistogram);
557 return filter.precompute(
570 filter.autofix.getRange = function(channelHistogram) {
591 filter.autofix.SENSITIVITY = 8;
598 filter.autofix.needsStretching = function(channelHistogram) {
599 var range = filter.autofix.getRange(channelHistogram);
600 return (range.first >= filter.autofix.SENSITIVITY ||
601 range.last <= 255 - filter.autofix.SENSITIVITY);
608 filter.autofix.isApplicable = function(histogram) {
609 return filter.autofix.needsStretching(histogram.r) ||
610 filter.autofix.needsStretching(histogram.g) ||
611 filter.autofix.needsStretching(histogram.b);