function ImageWrapper(size, data, ArrayType, initialize) {
    if (!data) {
        if (ArrayType) {
            this.data = new ArrayType(size.x * size.y);
            if (ArrayType === Array && initialize) {
                __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0);
            }
        } else {
            this.data = new Uint8Array(size.x * size.y);
            if (Uint8Array === Array && initialize) {
                __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0);
            }
        }
    } else {
        this.data = data;
    }
    this.size = size;
}
Represents a basic image combining the data and size.
In addition, some methods for manipulation are contained.
@param size {x,y} The size of the image in pixel
@param data {Array} If given, a flat array containing the pixel data
@param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed)
@param initialize {Boolean} Indicating if the array should be initialized on creation.
@returns {ImageWrapper}