[fpc-pascal] Implementing AggPas with PtcGraph
James Richters
james at productionautomation.net
Tue Jun 13 20:08:59 CEST 2017
> Also, the image is flipped on
>the Y axis compared to the original example. The small green square is in the upper left corner of test.png, but it is in the lower left corner of aggpas_ptcgraph_output.pas
It appears there is some ambiguity on whether 0,0 should be the lower left of upper left, but
I figured out how to flip the image on the Y axis:
agg^.attach(@graph_buffer.data, IMAGE_WIDTH, IMAGE_HEIGHT, -(IMAGE_WIDTH * RGB_WIDTH));
makes the image what I would consider upside down because
agg^.rectangle(10, 10, 50, 50);
ends up in the lower left corner but
ptcgraph.Rectangle(10,10,100,100);
ends up in the upper right corner.
If I use
agg^.attach(@graph_buffer.data, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_WIDTH * RGB_WIDTH);
now both
agg^.rectangle(10, 10, 50, 50);
and
ptcgraph.Rectangle(10,10,100,100);
end up in the upper left corner with the 10,10 coordinates matching up
I still have not figured out how to switch red and blue bits around so putimage() will work.
James
-----Original Message-----
From: fpc-pascal [mailto:fpc-pascal-bounces at lists.freepascal.org] On Behalf Of James Richters
Sent: Tuesday, June 13, 2017 12:43 PM
To: 'FPC-Pascal users discussions' <fpc-pascal at lists.freepascal.org>
Subject: Re: [fpc-pascal] Implementing AggPas with PtcGraph
I've just realized that the red and blue channels are reversed. The sample program aggpas_ptcgraph_output.pas has the star filled in with a red fade and a blue series of random lines while the original test.png file had a
blue fade in the star with red random lines. Also, the image is flipped on
the Y axis compared to the original example. The small green square is in the upper left corner of test.png, but it is in the lower left corner of aggpas_ptcgraph_output.pas
I've been able to duplicate the results of test.png by shifting the left 5 bits 11 positions to the right and the right 5 bits 11 positions to the left and flipping the Y axis, but I can only do that with putpixel and a nested
loop, which is quite a bit slower than putimage.
Any ideas how I can build the data correctly so putimage will work?
James
_______________________________________________
fpc-pascal maillist - fpc-pascal at lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list