From 790f80f0146045237b2e8af2fb9545b6b3774df2 Mon Sep 17 00:00:00 2001 From: Stephan Porada Date: Tue, 7 Jan 2020 15:13:10 +0100 Subject: [PATCH] Add merge_images --- .gitlab-ci.yml | 44 ++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 23 +++++++++++++++++++++++ merge_images | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile create mode 100644 merge_images diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..ea08fd4 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,44 @@ +image: docker:stable + +services: + - docker:stable-dind + +variables: + DOCKER_DRIVER: overlay2 + +stages: + - build + - push + +before_script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + +Build: + script: + - docker build --pull -t $CI_REGISTRY_IMAGE:tmp . + - docker push $CI_REGISTRY_IMAGE:tmp + stage: build + tags: + - docker + +Push latest: + only: + - master + script: + - docker pull $CI_REGISTRY_IMAGE:tmp + - docker tag $CI_REGISTRY_IMAGE:tmp $CI_REGISTRY_IMAGE:latest + - docker push $CI_REGISTRY_IMAGE:latest + stage: push + tags: + - docker + +Push tag: + only: + - tags + script: + - docker pull $CI_REGISTRY_IMAGE:tmp + - docker tag $CI_REGISTRY_IMAGE:tmp $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME + stage: push + tags: + - docker diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab18c64 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM debian:9-slim + + +# Define image metadata +LABEL maintainer="inf_sfb1288@lists.uni-bielefeld.de" + + +ENV LANG=C.UTF-8 + + +# Install prerequisites +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + imagemagick \ + python3.5 \ + && rm -rf /var/lib/apt/lists/* + + +# Install merge_images +COPY merge_images /usr/local/bin + +ENTRYPOINT ["merge_images"] +CMD ["--help"] diff --git a/merge_images b/merge_images new file mode 100644 index 0000000..c503a29 --- /dev/null +++ b/merge_images @@ -0,0 +1,39 @@ +#!/usr/bin/env python3.5 +# coding=utf-8 + + +""" +merge_images + +Usage: For usage instructions run with option --help +Author: Stephan Porada + +""" + +import os +import argparse + + +def parse_arguments(): + parser = argparse.ArgumentParser(description='Merges given input images ' + 'into one multipage tiff.') + parser.add_argument('-i', dest='input_dir', required=True) + parser.add_argument('-o', dest='output_dir', required=True) + return parser.parse_args() + + +def merge_images(input_dir, output_dir): + os.system('mkdir {}'.format(output_dir)) + os.system('ls -v {}/*.* >> file_list.txt'.format(input_dir)) + os.system('convert @file_list.txt {}/combined.tiff'.format(output_dir)) + os.system('cat "file_list.txt" | xargs rm') + os.system('rm file_list.txt') + + +def main(): + args = parse_arguments() + merge_images(args.input_dir, args.output_dir) + + +if __name__ == '__main__': + main()