This program “Converting an image into an image of colored disks" transforms an image into a picture composed of a series of colored disk of different sizes and colors. The disks have 8 sizes of different colors. The colors are determined by the dominate image colors.
​​
Notes:
(1) Programming this code has used suggestions by Mathematica AI Assistant Chat.
(2) A more random set of disk might be made using this discussion
https://mathematica.stackexchange.com/questions/87676/random-non-overlapping-disks-in-a-square
In[]:=
img=Import["C:\\Users\\gag00\\Desktop\\DiskArt\\Slides3333.jpg"];
In[]:=
{w,h}=ImageDimensions[img];​​col=Black;(*Whitebackgroundproducesadifferenteffect*)​​resolutions[k_]:=30+k*20(*settingsequenceofsizes*);
In[]:=
k=1;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];(*MatrixofRGBvalues*)​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic1=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=2;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic2=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=3;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic3=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=4;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic4=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=5;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic5=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=6;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic6=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=7;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic7=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];​​k=8;​​smallImg=ImageResize[img,resolutions[k]];​​pixels=ImageData[smallImg];​​{rows,cols}=Dimensions[pixels][[1;;2]];​​diskMosaic8=Graphics[Table[{RGBColor[pixels[[r,c]]],Disk[{c,rows-r+1},0.5]},{r,1,rows},{c,1,cols}],Background->col];
In[]:=
imgs=ImageResize[#,{w,h}]&/@{diskMosaic1,diskMosaic2,diskMosaic3,diskMosaic4,diskMosaic5,diskMosaic6,diskMosaic7,diskMosaic8};
In[]:=
standaresize=ImageDimensions[diskMosaic1];
In[]:=
diskMosaic1=ImageResize[diskMosaic1,standaresize];​​diskMosaic2=ImageResize[diskMosaic2,standaresize];​​diskMosaic3=ImageResize[diskMosaic3,standaresize];​​diskMosaic4=ImageResize[diskMosaic4,standaresize];​​diskMosaic5=ImageResize[diskMosaic5,standaresize];​​diskMosaic6=ImageResize[diskMosaic6,standaresize];​​diskMosaic7=ImageResize[diskMosaic7,standaresize];​​diskMosaic8=ImageResize[diskMosaic8,standaresize];
In[]:=
diskMosaic={diskMosaic1,diskMosaic2,diskMosaic3,​​diskMosaic4,diskMosaic5,diskMosaic6,,diskMosaic7,diskMosaic8};
In[]:=
DominantColors[img,4,{"Color","Coverage","CoverageImage"}];
In[]:=
res=DominantColors[img,Automatic,{"CoverageImage","Color"}](*givesmasksandcolorsovertheimageforwhichspecifiddiskwillbeused*);
In[]:=
imgg01=ImageMultiply[res[[1,1]],ImageResize[diskMosaic1,ImageDimensions[res[[1,1]]]]];
In[]:=
imgg02=ImageMultiply[res[[2,1]],ImageResize[diskMosaic2,ImageDimensions[res[[2,1]]]]];
In[]:=
imgg03=ImageMultiply[res[[3,1]],ImageResize[diskMosaic3,ImageDimensions[res[[3,1]]]]];
In[]:=
imgg04=ImageMultiply[res[[4,1]],ImageResize[diskMosaic4,ImageDimensions[res[[4,1]]]]];
In[]:=
imgg05=ImageMultiply[res[[5,1]],ImageResize[diskMosaic5,ImageDimensions[res[[5,1]]]]];
In[]:=
imgg06=ImageMultiply[res[[6,1]],ImageResize[diskMosaic6,ImageDimensions[res[[6,1]]]]];
In[]:=
maskedImages=​​Map[ImageApply[If[#==={0.,0.,0.},{0.,0.,0.},#]&,#​​]&,{imgg01,imgg02,imgg03,imgg04,imgg05,imgg06}];
In[]:=
result=ImageAdd[maskedImages];
In[]:=
finalimage=ImageAdjust[result,{0.0,0.25}]​​(*contrast,saturationandgammalevels*)
End of Program 🔴 🟠🟡 🟢🔵