The program must accept any string as input and output an pixel image that shows the input string in Courier. All the letters that contain a 'hole' (like
abdegopqABDPQR etc) that is surrounded by black pixels must be also filled black.
The Program must be able to accept any ASCII string as input. The input can be any way you want, as long as the program code itself does not have to change in order to accept a different input. (Except for e.g. the filename of the file that is to be read.) No standard loopholes. You can assume that each input contains at least one printable letter.
The output must be a black and white (no gray) pixel graphic that shows the string written in Courier (in black, background white), with the specified 'holes' filled. The fontsize of the whole string must be constant (that means no different scaling for each different letters) so that the full sized letters (e.g.
Access to courier.ttf / font libraries is allowed.
The program must as well count the number of black pixels and write it to console or what ever output method prefered in the end.
The score is evaluated as follows: The full program code must be used as input string to your program. The number of black pixels will be your score. Program code that contains non-printable or non-ASCII letters is not allowed. (As well as standard loopholes.) The lower the score the better.