ofxMsdfgen/src/ofxMsdfgen.cpp

32 lines
1.3 KiB
C++
Raw Normal View History

2023-02-21 11:00:43 +01:00
#include "ofxMsdfgen.h"
#include "ofPixels.h"
void ofxMsdfgen::toOfImage(const msdfgen::Bitmap <float, 3> bitmap,
ofFloatImage & image){
image.allocate(bitmap.width(), bitmap.height(), OF_IMAGE_COLOR);
memcpy(image.getPixels().getData(), bitmap.getPixels(), bitmap.width() * bitmap.height() * 3 * sizeof(float));
image.update(); // float is slow here
}
void ofxMsdfgen::toOfImage(const msdfgen::Bitmap <float, 3> bitmap,
ofImage & image){
image.allocate(bitmap.width(), bitmap.height(), OF_IMAGE_COLOR);
ofPixels & pixels = image.getPixels();
int w = bitmap.width();
int h = bitmap.height();
for(int y = 0; y < h; y++){
for(int x = 0; x < w; x++){
const float * rgb = bitmap(x, y);
int index = 3 * (x + y * w);
pixels.getData()[index] = (unsigned char)std::clamp(rgb[0] * 256.0,
0.0, 255.0);
pixels.getData()[index + 1] = (unsigned char)std::clamp(rgb[1] * 256.0,
0.0, 255.0);
pixels.getData()[index + 2] = (unsigned char)std::clamp(rgb[2] * 256.0,
0.0, 255.0);
}
}
image.update();
}