Golang, image manipulation, postgresql

This is a teledentistry program. Patients send us images, our software finds the area of interest. You will be writing the program (/usr/local/bin/zoomer) that digitally zooms in on the area of interest in the picture and stores it in an s3 bucket.

There will be a configuration file (in the home directory of the user the program runs as) which contains the s3 path to put the images into. This configuration file also has database credentials and a "context percentage" parameter and a "dimming percentage" parameter. You will use viper to read it. There will also be AWS

credentials in the user's home directory so that you can use the ordinary AWS golang APIs to access files from s3.

The program you will be writing can be invoked in one of three ways:


/usr/local/bin/zoomer -a

/usr/local/bin/zoomer -i {image_id}

If it is the first version (with no arguments given), then it begins a transaction and runs

select image_id from images_received where consensus_created and not cropped_version_created

order by random() for update skip locked

and iterates through that list of images, stopping after 59 seconds have elapsed.

If it is the second version (with -a) then it starts a transaction and runs the same query but doesn't stop after 59 seconds -- it just keeps going until it is finished.

If it is the third version, it just operates on that one image id. (But will still need to start a transaction and do a Select ... For Update... )

If that image_id appears in the Consensus_Mirrorless table, then the final image is the same as the source image.

If the image_id is not in the Consensus_Mirrorless table, it will be in the Consensus_Mirror_positions table, where the top_left, left_edge, bottom_edge and right_edge columns will tell you the rectangle that you are supposed to be extracting.

The Images_Received table has a column s3_path; that's where you can get the original image. The config file has a "cropped_images_bucket" -- you will be creating a file s3://$cropped_images_bucket/$image_id

The config file has a "context percentage" parameter. If the context percentage parameter is 0, then you simply crop the original image (top_left, left_edge, bottom_edge, right_edge) and put it into s3://$cropped_images_bucket/$image_id

If the context percentage parameter is not zero, then you are going to have a slightly larger image (the width will be Width * (1 + 2 * Context_Percentage) pixels wide and height will be Height * ( 1 + 2 * Context_Percentage) high.

Suppose (top_left, left_edge, bottom_edge, right_edge) = (100, 100, 200, 200) and context percentage is 25. Then the image you create will be 150x150; it will basically be the original image from (75, 75) to (225, 225), but any pixels with 25 pixels of the edge will be dimmed.

See the attached image for the kind of effect we are trying to get, but keep in mind I just did it by hand so the pixel counts aren't quite right.

You dim pixels by the "dimming percentage" from the config file.

If the context border would exceed the dimension of the original image, then the context border shrinks down to fit.

After the image has been created, it updates the Images_Received table and sets cropped_version_created = true, cropped_version_creation_timestamp = timenow(), cropped_version_s3_path = s3://$cropped_images_bucket/$image_id

At the program's completion, it commits the transaction.

SQL table samples...

create table images_received (

image_id uuid primary key,

s3_path varchar not null,

-- several columns hidden here because they aren't relevant

cropped_version_created boolean default false,

cropped_version_creation_timestamp timestamp,

cropped_version_s3_path varchar


create table consensus_mirror_positions (

image_id uuid references images_received,

top_edge int,

left_edge int,

bottom_edge int,

right_edge int,

width int,

height int


create table consensus_mirrorless (

image_id uuid references images_received


Навыки: Amazon Web Services, PostgreSQL, Golang, Image Processing

Показать больше: image manipulation script, php script image manipulation backgorund, image manipulation website, freelancer image manipulation, image manipulation job description, image manipulation portraiture, php image manipulation cut part image, flash image manipulation graphics, digital image manipulation freelance, online image manipulation, web based image manipulation flash, image manipulation job information, javascript online image manipulation, image manipulation provider india, php image manipulation reduce color, companys wants image manipulation, php image manipulation max width max height

О работодателе:
( 12 отзыв(-а, -ов) ) Beecroft, Australia

ID проекта: #24657441



Hi, I can develop the program using pretty standard set of libs/tools available with Go on Linux and AWS SDK for Go. Image and Draw programs can be used to achieve the required image shape/features. DB access can also Больше

$550 AUD за 4 дней(-я)
(0 отзывов(-а))

11 фрилансеров(-а) готовы выполнить эту работу в среднем за $543


● I have been in software development for 10+ years. ● I am a Golang developer with 5+ years of experience. ● I was responsible for many projects which is based on the microservice architecture and the design and deve Больше

$650 AUD за 7 дней(-я)
(11 отзывов(-а))

Hey Greg. I can work on your project to create the program (/usr/local/bin/zoomer) that digitally zooms in on the area of interest in the picture and stores it in an s3 bucket based on your requirements, including usin Больше

$750 AUD за 7 дней(-я)
(1 отзыв)

Hi, I am golang developer as well as I hav e knowledge of image processing. I could solve your problem . Can we have detail discussion?

$278 AUD за 7 дней(-я)
(1 отзыв)

AWS EC2 S3,Lambda expert Developer ready to ROCK! Dear Concern, I am writing to apply for the position, as advertised on freelancing website. My nearly 9 years of experience in creating custom automation robots simil Больше

$750 AUD за 7 дней(-я)
(0 отзывов(-а))

Hello Carefully read your project description and realized that I can afford it. I am a senior Web developer with over 3 years of experience in GoLang, PostgreSQL and Amazon Web Services. I have ever worked on several Больше

$750 AUD за 7 дней(-я)
(0 отзывов(-а))

Nice to meet you I am an Amazon Cloud Architect for the web infrastructure serving 90 million page impressions and 12 TB Internet traffic per month. The AWS services I use are EC2, ELB, MySQL RDS, VPC, CloudFront, Elas Больше

$392 AUD за 5 дней(-я)
(0 отзывов(-а))

Hi, Im software engineer in Golang, and Im will exciting to work with you if you're interested... I have some questions to resolve. if you're interested please send me a message, grettings. Christian

$500 AUD за 7 дней(-я)
(0 отзывов(-а))

Hello. Thank you for detailed project specification. I’m developer with more then 20 years experience in IT and more then 5 years in developing on golang. Skills: Docker, k8s, Postgres, Consul, ETCD, Prometheus, Gra Больше

$600 AUD за 7 дней(-я)
(0 отзывов(-а))

i have very good experience in golang for more then 2 years. i have worked on big projects like vitess and new commerce system. i will be the perfect fit for this project.

$500 AUD за 7 дней(-я)
(0 отзывов(-а))

Dear Client, I read your job and very interested to work with you. I have solid experience working in golang for the last 5 years. I have experience working with golang based Microservice (gRPC). You looking for an ex Больше

$250 AUD за 5 дней(-я)
(0 отзывов(-а))