Skip to content
Snippets Groups Projects
Commit e7e5e0af authored by Lemmer, Jan's avatar Lemmer, Jan
Browse files

Add QR code option

parent d06415e5
Branches
Tags
2 merge requests!62Introduce changes for V1.0 RC 1,!56Resolve "investigate QR-Code generation as option"
Pipeline #652691 passed
...@@ -24,6 +24,8 @@ arguments ...@@ -24,6 +24,8 @@ arguments
options.Position (1,2) {mustBeVector} = [1,0.4] % default for east options.Position (1,2) {mustBeVector} = [1,0.4] % default for east
options.Rotation (1,1) {mustBeReal} = NaN options.Rotation (1,1) {mustBeReal} = NaN
options.ConfigFileName (1,:) {mustBeText} = 'config.json' options.ConfigFileName (1,:) {mustBeText} = 'config.json'
options.QRcode (1,1) {mustBeNumericOrLogical} = false %experimentally
options.QRsize (1,1) {mustBeNonnegative} = 0.15
end end
if isempty(options.ProjectID) if isempty(options.ProjectID)
...@@ -73,16 +75,24 @@ IDs = cell(numel(figs),1); ...@@ -73,16 +75,24 @@ IDs = cell(numel(figs),1);
for n = 1:numel(figs) for n = 1:numel(figs)
IDs{n} = PlotID.CreateID; % Create ID IDs{n} = PlotID.CreateID; % Create ID
IDs{n} = [options.ProjectID,'-',IDs{n}]; % add options.ProjectID IDs{n} = [options.ProjectID,'-',IDs{n}]; % add options.ProjectID
axes = get(figs(n),'CurrentAxes'); % Axes object for text annotation pltAxes = get(figs(n),'CurrentAxes'); % Axes object for text annotation
% Limits for relative Positioning % Limits for relative Positioning
ylim =get(axes,'YLim'); ylim =get(pltAxes,'YLim');
xlim =get(axes,'XLim'); xlim =get(pltAxes,'XLim');
%ID %ID
position = [options.Position(1), options.Position(2)]; position = [options.Position(1), options.Position(2)];
text(axes,position(1),position(2), IDs{n},'Fontsize',options.Fontsize,... t=text(pltAxes,position(1),position(2), IDs{n},'Fontsize',options.Fontsize,...
'Rotation',Rotation, 'VerticalAlignment','bottom','Color',... 'Rotation',Rotation, 'VerticalAlignment','bottom','Color',...
options.Color,'BackgroundColor','w', 'Units', 'normalized'); options.Color,'BackgroundColor','w', 'Units', 'normalized');
set(figs(n),'Tag', IDs{n}); set(figs(n),'Tag', IDs{n});
if options.QRcode
qrCode = PlotID.plotQR(IDs{n});
size = options.QRsize;
axes('Position',[position(1)-.05 position(2)+0.1 size size]);
imshow(qrCode);
t.Visible = 'off';
end
end end
if numel(figs) == 1 if numel(figs) == 1
......
function img = plotQR(data, size)
%QR reads a QR code from qrserver
% created by J.Stifter
arguments
data {mustBeTextScalar} = 'example';
size (1,2) {mustBeInteger} = [150, 150];
end
m = size(1);
n = size(2);
base_api = 'https://api.qrserver.com/v1/create-qr-code/?size=%dx%d&data=%s';
request = sprintf(base_api, m, n, data);
options = weboptions;
options.Timeout = 5;
img = webread(request, options);
img =logical(img);
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment