This is a migrated thread and some comments may be shown as answers.

RadBarcodeQR doesn't work in code-behind

1 Answer 190 Views
BarCode
This is a migrated thread and some comments may be shown as answers.
Sergiy
Top achievements
Rank 1
Sergiy asked on 31 May 2013, 09:35 AM
Hello, I am trying to get byte code of QR but I faced issue.
It's standard sample from telerik

var qRCode = new RadBarcodeQR();
qRCode.ErrorCorrectionLevel = QRClassLibrary.Modes.ErrorCorrectionLevel.H;
qRCode.Mode = QRClassLibrary.Modes.CodeMode.Byte;
qRCode.Version = 2;
 
qRCode.Text = "TestText";
 
const string extension = "png";
var dialog = new SaveFileDialog()
{
    DefaultExt = extension,
    FileName = "QRBarCode",
    Filter = "Png (*.png)|*.png"
};
 
if (dialog.ShowDialog() == true)
{
    using (var stream = dialog.OpenFile())
    {
        ExportExtensions.ExportToImage(qRCode, stream, new PngBitmapEncoder());
    }
}

But I have got the next Exception 

The parameter value must be greater than zero.
Parameter name: pixelWidth

   at System.Windows.Media.Imaging.RenderTargetBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat)
   at Telerik.Windows.Media.Imaging.ExportHelper.GetBitmapSource(FrameworkElement element, Double dpiX, Double dpiY) in c:\TB\221\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 97
   at Telerik.Windows.Media.Imaging.ExportHelper.GetElementImage(FrameworkElement element) in c:\TB\221\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportHelper.cs:line 70
   at Telerik.Windows.Media.Imaging.ImageExporter.Export(FrameworkElement element, Stream stream, BitmapEncoder encoder) in c:\TB\221\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ImageExporter.cs:line 12
   at Telerik.Windows.Media.Imaging.ExportExtensions.ExportToImage(FrameworkElement element, Stream stream, BitmapEncoder encoder) in c:\TB\221\WPF_Scrum\Release_WPF\Sources\Development\Core\Controls\ExportExtensions\ExportExtensions.cs:line 100
   at WpfApplication1.MainWindow.ButtonBase_OnClick(Object sender, RoutedEventArgs e) in c:\Users\smile\Documents\Visual Studio 2012\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml.cs:line 352
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at WpfApplication1.App.Main() in c:\Users\smile\Documents\Visual Studio 2012\Projects\WpfApplication1\WpfApplication1\obj\Debug\App.g.cs:line 0
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()



What am I doing wrong?
I need to get the byte[] of image source (QR, BaCode and so on), could you give me sample of code what I need to do, please? (NOT LINK, I want to see a working example)
Thank You

1 Answer, 1 is accepted

Sort by
0
Yavor
Telerik team
answered on 04 Jun 2013, 06:59 AM
Hello,

I tested the code which you included, and it worked as expected.
If the issue which you reported persists, please open a formal support ticket, and send us a small application, which replicates the issue. We will review it and get back to you with more information on the matter.

Regards,
Yavor
Telerik

Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

Sajid
Top achievements
Rank 1
commented on 05 Sep 2023, 09:12 AM | edited

Hi I am also trying to generate QR code from code behind and trying to insert in RadDocument and when I try to export to image then same exception occurs value must be non-zero. here is my sample code. Please suggest the way forward this is very import for us.

 Telerik.Windows.Controls.RadBarcodeQR QrCode = new Telerik.Windows.Controls.RadBarcodeQR()
                                {
                                    Text = "HelloWorld123",
                                    Mode = QRClassLibrary.Modes.CodeMode.Byte,
                                    Version = 2,
                                    ErrorCorrectionLevel = QRClassLibrary.Modes.ErrorCorrectionLevel.H,
                                    Width = 200,
                                    Height=200,
                                    }

 MemoryStream ms = new MemoryStream();
                                Telerik.Windows.Media.Imaging.ExportExtensions.ExportToImage(QrCode, ms, new System.Windows.Media.Imaging.PngBitmapEncoder());
                                editor.InsertImage(ms, "png");
Martin Ivanov
Telerik team
commented on 06 Sep 2023, 07:30 AM

You can see how to export the barcode to an image, without adding it to the visual tree here:
https://docs.telerik.com/devtools/wpf/knowledge-base/kb-barcode-export-to-image

Tags
BarCode
Asked by
Sergiy
Top achievements
Rank 1
Answers by
Yavor
Telerik team
Share this question
or