QRCoder icon indicating copy to clipboard operation
QRCoder copied to clipboard

How do I have square cells with custom finderPatternImage?

Open JacobM8 opened this issue 3 years ago • 1 comments

Type of issue

[ ] Bug
[x] Question (e.g. about handling/usage)
[ ] Request for new feature/improvement

How do I have square cells with custom finderPatternImage?

JacobM8 avatar Oct 20 '22 21:10 JacobM8

复制一份ArtQrCode为DiyQrCode,然后使用新的DiyQrCode。 修改

                                if (!IsPartOfFinderPattern(x, y, numModules, offset))
                                    if (drawQuietZones && quietZoneRenderingStyle == QuietZoneStyle.Flat && IsPartOfQuietZone(x, y, numModules))
                                        graphics.FillRectangle(solidBrush, rectangleF);
                                    else
                                        graphics.DrawImage(pixelImage, rectangleF);
                                else if (finderPatternImage == null)
                                    graphics.FillRectangle(solidBrush, rectangleF);

                                if (!IsPartOfFinderPattern(x, y, numModules, offset)){
                                        graphics.FillRectangle(solidBrush, rectangleF);
                                }else if (finderPatternImage == null){
                                    graphics.FillRectangle(solidBrush, rectangleF);
}

另外还有一个BUG,修改

                        if (finderPatternImage != null)
                        {
                            var finderPatternSize = 7 * pixelsPerModule;
                            graphics.DrawImage(finderPatternImage, new Rectangle(0, 0, finderPatternSize, finderPatternSize));
                            graphics.DrawImage(finderPatternImage, new Rectangle(size - finderPatternSize, 0, finderPatternSize, finderPatternSize));
                            graphics.DrawImage(finderPatternImage, new Rectangle(0, size - finderPatternSize, finderPatternSize, finderPatternSize));
                        }

                        if (finderPatternImage != null) {
                            var finderPatternSize = 7 * pixelsPerModule;
                            var finderPatternOffset = drawQuietZones ? 4 * pixelsPerModule : 0;
                            graphics.DrawImage(finderPatternImage, new Rectangle(finderPatternOffset, finderPatternOffset, finderPatternSize, finderPatternSize));
                            graphics.DrawImage(finderPatternImage, new Rectangle(size - finderPatternOffset - finderPatternSize, finderPatternOffset, finderPatternSize, finderPatternSize));
                            graphics.DrawImage(finderPatternImage, new Rectangle(finderPatternOffset, size - finderPatternOffset - finderPatternSize, finderPatternSize, finderPatternSize));
                        }

koaqiu avatar Oct 05 '23 03:10 koaqiu