A
Ja, so etwas ähnliches habe ich mir schon gedacht.
- TCanvas::Pixels[] ist relativ langsam. Du solltest lieber TBitmap::ScanLine verwenden.
- Das hier hat mich etwas amüsiert:
RGBTriple Dithering::ColorToRGB(TColor rgb){
String r = ColorToString(rgb).SubString(8,2);
String g = ColorToString(rgb).SubString(6,2);
String b = ColorToString(rgb).SubString(4,2);
int iR, iG, iB;
sscanf(r.c_str(), "%x", &iR);
sscanf(g.c_str(), "%x", &iG);
sscanf(b.c_str(), "%x", &iB);
RGBTriple result;
result.R = iR;
result.G = iG;
result.B = iB;
return result;
}
TColor Dithering::RGBToColor(RGBTriple rgb){
return RGB(rgb.R, rgb.G, rgb.B);
if(rgb.R == 0 && rgb.G ==0 && rgb.B ==0)
{
return clBlack;
}else {
return clWhite;
}
}
Es ist etwas ungeschickt, eine derartige Berechnung mit Strings durchzuführen. Aber ich will jetzt nicht weiter darauf eingehen, sondern dich darauf verweisen, daß es
- in der Delphi-RTL bereits ColorToRGB() gibt, und
- RGBToColor ein Einzeiler ist:
TColor myColor = TColor (RGB (r, g, b));