module rip.io.dlib; private { import rip.io; } public: //Если привязка используется, то и доступ к библеотеке должен присутствовать import dlib.image; //alias superImageToSurface = convert!(Surface); Surface superImageToSurface(SuperImage image) { auto surface = new Surface(image.width, image.height); foreach(i; 0..image.width) { foreach(j; 0..image.height) { surface[i, j] = color4ToRgbColor(image[i, j]); } } return surface; } SuperImage surfaceToSuperImage(in Surface _surface) { //opIndex должна быть const, при исправлении строчку ниже удалить auto surface = cast(Surface)_surface; auto _image = image(surface.getWidth!uint, surface.getHeight!uint, 4, 8); foreach(i; 0.._image.width) { foreach(j; 0.._image.height) { _image[i, j] = rgbColorToColor4(surface[i, j]); } } return _image; } RGBColor color4ToRgbColor(in Color4f color) { return new RGBColor(color.r * 255, color.g * 255, color.b * 255); } Color4f rgbColorToColor4(in RGBColor color) { return Color4f( color.red!float / 255, color.green!float / 255, color.blue!float / 255, 1); }