10/09/2024 - Marchetto ha scritto:
Non lo sò se è corretto l' ho letto sui siti
Ma non l'hai compreso.
In quel modo non ha alcun senso.
Quindi non devi chiedere se è lento ma se è corretto.
Ti dò uno spunto ma solo per questa volta. Non conosci le basi del C e del C++ e vuoi usare i thread … altro che usare un libro e studiare … non ti sembra assurdo?
#include <thread>
using namespace std;
void pxrec(int fromr, int fromc, int tor, int toc, bitmap_image *imager)
{
int r, c;
rgb_t colour;
for (r = fromr; r <= tor; r++)
for (c = fromc; c <= toc; c++)
{
imager->get_pixel(c, r, colour);
px[r][c] = colr((unsigned int)colour.red, (unsigned int)colour.green, (unsigned int)colour.blue);
}
}
int main()
{
bitmap_image imager("input.bmp");
thread th1(pxrec, 0, 0, 249, 499, &imager);
thread th2(pxrec, 250, 0, 499, 499, &imager);
th1.join();
th2.join();
return 0;
}
P.S. Non so nulla di questa funzione colr, nè se siano necessari quei cast, nè se possa essere semplificata o addirittura eliminata e sostituita con del codice … Fra l'altro la cosa normale sarebbe che la colr accettasse un solo argomento di tipo rgb_t