suchenwi But one basic question: in barcodes like Code 128 (EAN?), each digit is a black and a white bar, the added thickness of which two is constant, right? kroc Richard: each digit (or letter for some barcodes) is a set of bars and spaces... suchenwi How many? kroc it depends of barcode type. kroc Six per char for Code 128 for a total of 11 units. kroc Here is a sample : B == bar and S == space digit represents width. char == BSBSBS a = 121124 b = 431111 etc.. kroc So, graphic representation will be: a = "X X XX " b = "XXXX X X " kroc To build the barcode, you join all char bars and spaces. It also need start and end symbol, sometimes an ending control char, and must respect minimum width requirements to be read. suchenwi Ah - and for a quick shot one could draw canvas lines for the bars... suchenwi Check digit too, if I remember right. kroc It's more accurate to draw on a photo image like that : foreach {bar space} $code { set larg [expr ($bar * $unit)+$debut] img-$nbimg put #000000 -to $debut 0 $larg $fin set debut [expr ($space*$unit) + $larg] } suchenwi Do you have a link to specifications of the bar-space width patterns? kroc mb: to answer your question, ean8 and Code 128 aren't the same thing at all. * kroc checking... kroc http://www.ean-int.org kroc http://www.barcodeisland.com/symbolgy.phtml