Coder Social home page Coder Social logo

Comments (6)

formgi avatar formgi commented on June 9, 2024 3

I'm added in class ImageWriter variable print_text. Default value is True, if need create barcode without text, writer=ImageWriter(False)

`class ImageWriter(BaseWriter):

    def __init__(self, print_text=True):
        BaseWriter.__init__(self, self._init, self._paint_module,
                            self._paint_text, self._finish)
        self.format = 'PNG'
        self.dpi = 300
        self._image = None
        self._draw = None
        self.print_text = print_text         

    def _init(self, code):
        size = self.calculate_size(len(code[0]), len(code), self.dpi)
        if not self.print_text:
            size = (size[0], int(size[1] * 0.7))
        self._image = Image.new('RGB', size, self.background)
        self._draw = ImageDraw.Draw(self._image)

    def _paint_module(self, xpos, ypos, width, color):
        size = [(mm2px(xpos, self.dpi), mm2px(ypos, self.dpi)),
                (mm2px(xpos + width, self.dpi),
                 mm2px(ypos + self.module_height, self.dpi))]
        self._draw.rectangle(size, outline=color, fill=color)

    def _paint_text(self, xpos, ypos):
        if self.print_text:
            font = ImageFont.truetype(FONT, self.font_size * 2)
            width, height = font.getsize(self.text)
            pos = (mm2px(xpos, self.dpi) - width // 2,
                   mm2px(ypos, self.dpi) - height // 4)
            self._draw.text(pos, self.text, font=font, fill=self.foreground)`

from python-barcode.

georgek avatar georgek commented on June 9, 2024 1

For anyone reading this today, _paint_text has been renamed to _create_text.

from python-barcode.

WhyNotHugo avatar WhyNotHugo commented on June 9, 2024

You can subclass writers and override the text render method. It probably makes sense to add a flag for this though, since it's a rather common request.

class ImageWitoutTextWriter(ImageWriter):
    def _paint_text(self, xpos, ypos):
        pass

from python-barcode.

WhyNotHugo avatar WhyNotHugo commented on June 9, 2024

Would you like to make that into a PR?

from python-barcode.

nabelekt avatar nabelekt commented on June 9, 2024

Was this ever integrated into main? I don't see it in https://github.com/WhyNotHugo/python-barcode/blob/main/barcode/writer.py

from python-barcode.

zipus avatar zipus commented on June 9, 2024

For anyone reading this today, _paint_text has been renamed to _create_text.

Just to clarify, the rename is only on SVGWriter, in ImageWriter still uses the _paint_text

from python-barcode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.