Member 8525852 Ответов: 1

Как правильно масштабировать изображения штрих-кодов?


Я использую следующий код библиотеки генерации изображений штрих-кодов для генерации штрих-кодов.

Barcode.Encode(BarcodeLib.TYPE.BOOKLAND, Text, Width, Height) 


Сгенерированные изображения имеют одинаковую длину, что искажает штрих-код.

https://i.imgur.com/gHDNjzZ.png[^]

Как заставить штрих-коды автоматически масштабироваться должным образом?

Что я уже пробовал:

Я создал отчет SSRS, который использует BarcodeLib.dll собрание. Он отлично работает, за исключением масштабирования штрих-кодов. Я знаю, что делаю что-то глупое, но не могу понять, что именно.

Richard MacCutchan

Вы должны проверить документацию, прилагаемую к библиотеке. Также смотрите ниже.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Когда изображение искажается, это часто происходит потому, что одно измерение настраивается без другого. Ключом к сохранению правильного соотношения сторон при изменении размера изображения является алгоритм, используемый для вычисления этого соотношения, а именно:

NewHeight = GivenWidth * (OriginalHeight / OriginalWidth)

 or

NewWidth = GivenHeight * (OriginalWidth / OriginalHeight)

Этот расчет предполагает, что “заданный...” - это размер, на который должно быть изменено изображение. Как только мы это узнаем, мы можем умножить его на аспект исходного изображения, и это даст нам значение другой стороны, в котором мы нуждаемся. Итак, предположим, что исходное изображение имеет ширину 1000 и высоту 1600, и мы хотим, чтобы его размер был изменен до ширины 500:

Сначала найдите аспект: (1600/1000) = аспект 1.6
Теперь умножьте аспект на желаемую новую ширину: 1.6 * 500
Результатом этого умножения будет 800, то есть то, каким должен быть наш рост
Иначе говоря:

800 = 500 * (1600 / 1000)

Таким образом, полученное изображение будет иметь высоту 800 и ширину 500.


Member 8525852

Вы отвечаете на конкретный проект Библиотеки генерации изображений штрих-кодов...

https://www.codeproject.com/Articles/20823/Barcode-Image-Generation-Library

..или вы делаете общее замечание о соотношении сторон и изменении размера изображения?

Моя конкретная проблема заключается в том, что вы должны указать высоту и ширину функции, которая генерирует изображение. Откуда вы знаете, что такое "исходная высота/ширина"? В идеале вы вообще не будете указывать высоту/ширину, и функция будет генерировать изображение с правильным соотношением сторон.

Что касается проверки документации, то она, похоже, не рассматривается. Демонстрационное приложение библиотеки, которое поставляется с кодом, отображает искаженные изображения, а также текстовые поля для ввода высоты и ширины. Я предполагаю, что вы создаете изображение, а затем играете с параметрами высоты и ширины, чтобы создать изображение с правильным соотношением сторон, но я хотел убедиться, что я был прав.

Richard MacCutchan

Если у вас есть проблема с кодом, который вы получили из статьи CodeProject, то вы должны разместить свой вопрос на форуме статьи, чтобы человек, написавший код, мог вам помочь.

Member 8525852

Я думал, что отправляю вопрос в проект. Очевидно, что нет. Спасибо.