Saturday, February 27, 2010

How to merge multiple images into one image - Java ImageIO

My previous post shows how to split an image into chunks. Now let's see how to merge multiple images into one image. Say we need to concatenate following four image chunks. I got these chunks by splitting the image in the right hand side, using the image splitter.

















Following code shows how to concatenate the image chunks above into one image.
int rows = 2;   //we assume the no. of rows and cols are known and each chunk has equal width and height
        int cols = 2;
        int chunks = rows * cols;

        int chunkWidth, chunkHeight;
        int type;
        //fetching image files
        File[] imgFiles = new File[chunks];
        for (int i = 0; i < chunks; i++) {
            imgFiles[i] = new File("archi" + i + ".jpg");
        }

       //creating a bufferd image array from image files
        BufferedImage[] buffImages = new BufferedImage[chunks];
        for (int i = 0; i < chunks; i++) {
            buffImages[i] = ImageIO.read(imgFiles[i]);
        }
        type = buffImages[0].getType();
        chunkWidth = buffImages[0].getWidth();
        chunkHeight = buffImages[0].getHeight();

        //Initializing the final image
        BufferedImage finalImg = new BufferedImage(chunkWidth*cols, chunkHeight*rows, type);

        int num = 0;
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null);
                num++;
            }
        }
        System.out.println("Image concatenated.....");
        ImageIO.write(finalImg, "jpeg", new File("finalImg.jpg"));

81 comments:

HazyMind said...

This was very helpful. Thank you!

Unknown said...

hey...thankx a lot...ws helpful 4 our prjct...

Ardisan said...

Thankx Kalani, this was very helpful for may final project, since I was to start my project using java.

kalani Ruwanpathirana said...

welcome...you all.

Knick said...

On line 23: shouldn't it be "chunkWidth*cols" instead of "chunkWidth*chunks" (respectively "rows")? Or not?

Anyway thanks a lot!

kalani Ruwanpathirana said...

Thanks Knick for pointing that out. (I couldn't test this code but I'll change that)

Avalon-Zone said...

Hi,

I gonna use your piece of code but I'm not sure about memory consumption because I would like to use it to merge a large amount of image... about 4000 images with a maximum size of 256x256x8bit / image. I'm not sure that Java will be able to handle that. Do you have any advice concerning my case ?

Thanks

krish indhu said...

hi...i need the java code for replacing some parts in image...i tried many times.but i cannot get any code for image parts replacing,i completed half of the project,if i got the java code for image parts replacing,i completed my project...plzzz plzzz help me

krish indhu said...

hi...i need the java code for replacing some parts in image...i tried many times.but i cannot get any code for image parts replacing,i completed half of the project,if i got the java code for image parts replacing,i completed my project...plzzz plzzz help me

Unknown said...

Hello
your post is really helpful. i tried both the splitting and merging. it has a problem of rounding. for example i split my image 574 * 574 in to 4 * 4 chunks which results in 143 * 143 sized 16 chunks and when i merge all the chunks the resultant size will be the 572 * 572 , because it does not take care of rounding mistake happens with division operation. if we make more chunks say 200 then the rounding loss 100 pixels and so on.

Unknown said...

thank u very much.........

Prateek Shrivastava said...

I am getting a black image after concating the images. Any idea?

Unknown said...

Works like a charm.

Unknown said...

sir,
Could you please tell me if we can import this into an android project ?
And if Yes How should we go about it.

Unknown said...

gud afternoon madam .madam i excute that code not run in netbeens .

Unknown said...
This comment has been removed by the author.
Unknown said...

view plainprint?

int rows = 2; //we assume the no. of rows and cols are known and each chunk has equal width and height
int cols = 2;
int chunks = rows * cols;

int chunkWidth, chunkHeight;
int type;
//fetching image files
File[] imgFiles = new File[chunks];
for (int i = 0; i < chunks; i++) {
imgFiles[i] = new File("archi" + i + ".jpg");
}

//creating a bufferd image array from image files
BufferedImage[] buffImages = new BufferedImage[chunks];
for (int i = 0; i < chunks; i++) {
buffImages[i] = ImageIO.read(imgFiles[i]);
}
type = buffImages[0].getType();
chunkWidth = buffImages[0].getWidth();
chunkHeight = buffImages[0].getHeight();

//Initializing the final image
BufferedImage finalImg = new BufferedImage(chunkWidth*cols, chunkHeight*rows, type);

int num = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null);
num++;
}
}
System.out.println("Image concatenated.....");
ImageIO.write(finalImg, "jpeg", new File("finalImg.jpg"));

Unknown said...

above code is not excute please slove that code

Unknown said...
This comment has been removed by the author.
Unknown said...

Hi Kalani,
I am Sunil From Mumbai. I want take multiple images from DB and make one image and fetch that one image from server side to client and again extract that one image get multiple, so can we get this. Can you help me. my email id is sunilkale24@gmail.com

Unknown said...

This is very helpful for the works. Thank u as a srilankan

Unknown said...

Good morning mam.do you hav the code to crop a img

Unknown said...

This code shows the error
Cant find symbol ImageIO.read();
and ImageIO.write();

Unknown said...

i have to merge images of 30 MP resulting image will be 2*2 i.e 120 MP so i am getting out of memory error
what can i do can anyone help me

Shashank(admin) said...

Hi Kalyani
What If I have a fifth image which is png and want to overlay above this collage. So that transparent area remains transparent in png image. Please help

Pawel Co Faddey said...

Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training in India . Nowadays Java has tons of job opportunities on various vertical industry.

Sandeep S said...

Prologics, India offers HDR image blending, real estate photo editing and image editing services, image clipping, background removal, photo clipping path service, photo editing, color correction, photo retouching & restoration, clipping path, cropping, resizing services, 3d floor design, 2d floor plan services & many more.

Unknown said...

A new tool constructed for merging PDF documents doesn’t lag behind. You may combine pdfs online without extra efforts. In the best traditions of our platform, the procedure is self-explanatory and easy in usage. Our user-friendly interface attracts your attention to main moments and step-by-step leads you to the successful result.merge, altomerge, merging PDF documents, combine pdfs online

If you need any information just click here pdf merge

Unknown said...

Best selenium online training institute `

siva said...

All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information,
I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.
Java training in Btm layout
Java training in Jaya nagar
Java training in Electronic city
Java training in Chennai
Java training in USA

vijay said...

I like your post very much. It is very much useful for my research. I hope you to share more info about this. Keep posting!!
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Durai Moorthy said...

I am really happy with your blog because your article is very unique and powerful for new reader.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Rajesh Anbu said...

Thank you for sharing information. Wonderful blog & good post.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore

Gerard Parsons said...

Quality of an image in a document printed out should always be higher than the quality of one being viewed on the internet as when a image is printed out it needs higher quality than an image that you view on your computer. onlineconvertfree.com

Franklin said...

lms higher education
virtual learning platforms
school management app

aka said...

wow your arctile was very informative and it has solved my many quiries

Please more information on different topic please visit these links given bellow...

Top 10 CBSE Schools in Meerut

Astro Finding

Best Website Designer in Meerut

Dietitian in Meerut

Anonymous said...

Asking questions are really pleasant thing if you are not understanding anything entirely, but this article offers nice understanding yet.
Mac Crack Software

Addons said...

content marketing in usa
social media advertising in usa
digital solution company in usa
erp software development in usa
maintenance automation in usa

Persephone Summers said...

buy juicy fruit online
buy gelato strain online
Buy dark star strain online
buy hawaiian skunk strain online
buy bc big bud strain leafly
buy auto flowering seeds online
buy brass knuckles vape recall 2018
buy alaskan thunder fuck online
buy cannabis seeds bank online

Tech Viky said...


Thanks for updating us with useful information
Techviky.com

Tech Viky said...


Thanks for updating us with useful information
Techviky.com

derick said...

british shorthair kittens
british shorthair cat for sale

Tech Viky said...

Thanks for updating us with useful information

ThePlugUSA said...

Get best top grade AAA+ Cannabis products, medical Marijuana and Medical Cards.
buy marijuana-indica online
buy marijuana-hybrid online
buy marijuana-concentrates-cartridges-and-weed-concentrates online
buy marijuana-seeds online
buy marijuana-pre-rolls online
buy marijuana-accessories online
buy marijuana-accessories-and-vaporisers online
buy hemp-cbd-and-cbd-oils online
buy hemp-cbd-and-cbd-capsules-weed-concentrates online
"buy marijuana-grand-daddy-purple online
buy marijuana-indica online

johnson said...

buy marijuana-flowers online
buy marijuana-edibles online
buy cbd-oils online
buy vapes-and-carts online
buy accessories online
buy auto-flowering-seeds online
buy auto-flowering-seeds online
buy psychedelics online
“buy psychedelics online usa
buy cannabis-concentrates-online

ThePlugUSA said...

Get best top grade AAA+ Cannabis products, medical Marijuana and Medical Cards.
buy marijuana-indica online
buy marijuana-hybrid online
buy marijuana-concentrates-cartridges-and-weed-concentrates online
buy marijuana-seeds online
buy marijuana-pre-rolls online
buy marijuana-accessories online
buy marijuana-accessories-and-vaporisers online
buy hemp-cbd-and-cbd-oils online
buy hemp-cbd-and-cbd-capsules-weed-concentrates online
"buy marijuana-grand-daddy-purple online
buy marijuana-indica online

johnson said...

buy marijuana-flowers online
buy marijuana-edibles online
buy cbd-oils online
buy vapes-and-carts online
buy accessories online
buy auto-flowering-seeds online
buy granddaddy-purple online
buy psychedelics online
buy cannabis-concentrates-online
buy og-kush online
buy dmt-nn-dimethyltryptamine online
buy blue-cheese-weed online
buy purple-haze online
buy strawberry-cough online
buy black-diamond-kush online
buy blue-dream online
buy moon-rock online

Unknown said...

what is contrave

silicon wives

sky pharmacy

atx 101 uk

macrolane buttock injections london

hydrogel buttock injections

buying vyvanse online legit

buy dermal fillers online usa

mesotherapy injections near me

xeomin reviews

yanmaneee said...

jordan shoes
chrome hearts online store
curry 7 sour patch
giannis shoes
kobe shoes
kyrie shoes
jordan retro
jordan 1
moncler jackets
moncler jackets

xingxing said...

abrigo aviador mujer abdomen
gucci forocoches
sonic 3 and knuckles juego online
short de bain islamique
stihl klamotten
brabus rocket 900 amazon
new balance icarus
sonnenbrille herren mit seitenschutz
hoodie pepe jeans cyan
shorts fitness feminino
melhores marcas de mochilas masculinas
quadri da disegnare amazon
aharry potter x vans
culle e passeggini per neonati amazon
camisa da ferroviária
galocha rosa feminina
deichmann bolsos
bolso de mano de hombre guess entusiasta
tenda da sole spiaggia amazon
nike pegasus 94
Nike Air Force 270
borraccia decathlon amazon
sostituzione cinghia distribuzione seat mii
veste per battesimo amazon

xingxing said...

calzoncillos puma hombre
adidas originals panna scarpe uomo basse
grossista condizionatori
costumi interi amazon
vestito da elsa disney
adidas yeezy semi frozen yellow on feet
second hand golf 5 gti for sale
piumini daunenstep amazon
pittura x pareti amazon trascorrere
fiore garofano amazon
air force 1 nike outfit men basket
nike air zip up hoodie
king kong jeans
zapatillas running galaxy 4 azul marino mujer adidas
blazer basicos mujer
nike air max de bebe principal opción
zapatos de charol mujer con taco
nike metcon flyknit 3 para running
bolsas para comprimir equipaje
chanclas new balance niña
nike pegasus grey and green
amazon sandalias reef
polo simulator

Unknown said...

what is contrave

silicon wives

sky pharmacy

atx 101 uk

macrolane buttock injections london

buy vyvanse online usa uk

buying vyvanse online legit

where can i buy dermal fillers without license

mesotherapy injections near me

xeomin reviews

diamondsymons2 said...

cricket jersey shop
camisa da ferroviária
jersey rombos hm
bougie senteur orientale
zapatillas nike air max para mujer
bolso de mano de hombre guess entusiasta
maje robe
bluze de trening adidas barbati
casquette ny kaki mère
adidas zx flux nere bambino
nike air max 97 mujer logo
triciclo usato milano
robe voile manche longue
nike presto extreme pas cher
vestido caipira salvador
sonic 3 and knuckles juego online
nike hypervenom all black
sonnenbrille herren mit seitenschutz
jean milani
af1 louis vuitton
scrivania mini amazon
veste fourrure renard argenté
tenis adicolor adidas
style année 80 femme
gucci forocoches
berghaus mens raincoat
sandália rasteira bottero
bolsa media kipling
nike shox feminino modelo novo
zapatillas bimba y lola outlet
risparmiare batteria iphone ios 12
tende doccia milano amazon
ropa de crossfit nike
eolo camicie amazon
new balance icarus
adidas rock climbing
brassiere garcon
adidas zx flux adv virtue sock w
conjunto barça niño

bedortheadora said...

https://www.grittys.it//pittura x pareti amazon trascorrere
https://www.princessehermine.com//pull training nike
https://www.ritascurryhouse.com//nike sb air max bruin vapor
https://www.lanouba80.fr//jogging fille 14 ans adidas
https://www.revistaveiculoseletricos.pt//outlet nike floresta
https://www.hartwigshof.de//nike dual fusion tr iii
https://www.marzeesocialevents.com//maglietta ciglia stradivarius
https://www.aptcars.co.uk//nike jogginghose dunkelgrau damen
https://www.antoniahr.com//nike academy16 knt tracksuit 2
https://www.ifgpersianeblindate.it//borraccia decathlon amazon
https://www.cidadessustentaveis.pt//camisa ponte preta aranha
https://www.fieldsofstyle.com//sandalias de esparto mujer
https://www.castillonenfete.fr//kiabi bottine femme
https://www.aeroclub-val-durance-aavd.fr//polo lacoste ton sur ton
https://www.auszeit-hockenheim.de//pepe jeans tami
https://www.infludance.fr//crampon vissé adidas
https://www.cenasverdes.pt//brassiere garcon
https://www.mdssouthhowrah.com//vestido de niña rosa palo
https://www.cartolibreriamarondoli.it//maglia termica nuoto bambina
https://www.hebergement-insolite.net//adidas zx flux adv virtue sock w
https://www.celebrationoccasion.com//nike cortez prm
https://www.vflah.de//beutel zipper amazon
https://www.housemichalis.com//nike tanjun damen weiß 44
https://www.theillustratedthought.com//scarpe pirelli uomo impedire
https://www.ksla.at//polo ralph lauren jeanshemd damen
https://www.progettagiardino.it//risparmiare batteria iphone ios 12
https://www.tdp-madagascar.com//style année 80 femme
https://www.bbvillaesmeralda.it//Nike Air Force 270
https://www.fleurs-des-salines.fr//kimono en jean
https://www.bishopsworthgroup.com//pantaloni puma femei pollice Linea di metallo
https://www.campi-elisi.it//shein camicie donna cameriera
https://www.algunoshombres.es//bañador neopreno mujer oysho
https://www.elegancechauffeur.co.uk//sudadera nike vintage
https://www.italobimbi.it//giacca da prestigiatore
https://www.bfcilalitpur.com//sandalias courofeito a mao
https://www.braceriamei.it//grossista condizionatori
https://www.villalucasardegna.com//piumini daunenstep amazon
https://www.medesindustrial.com//zapatillas cruyff mujer
https://www.atlantisdevelopment.fr//valentine gauthier chaussures
https://www.casaruralbardenas.es//nike huarache og colorways
https://www.mauriege-carreleur.com//pull lacoste col montant activer
https://www.psk-pris.com//zirkus jacke herren amazon
https://www.aladinilmusical.it//maglia as roma blu
https://www.fotodrone.fr//tabouret pour toilette amazon
https://www.swantonnaz.org//puma calçados femininos desvaneça
https://www.festivosdecolombia.com//adidas duramo 7 precio
https://www.zarabelsanas.com//nike air force one rot schwarz
https://www.sardinialocalguide.com//vestito stile smoking bianco
https://www.garageabf.fr//chaussure de basketball nike zoom kobe 11 femme

qwe said...

nike sb prod x
gucci leather wristband
botas australianas mustang
magnum pi jeans
nike pegasus 94
scatola protezione stagna
shein camicie donna cameriera
nike les halles
nike blazer low 3d
vestido de niña rosa palo
giacca da prestigiatore
sapatenis masculino elastico
sujetador media copa abierto
polo shirt juventus
ladies summer shorts
gucci slides cheap
sandalias agua cerradas
survetement adidas homme militaire
nike t shirt tumblr
nike tanjun damen weiß 44

qwe said...

tumbona terraza ikea
nike zoom strike sprinter
gants si assault factory pilot noir oakley
camisa cuadros franela mujer
galocha rosa feminina
adidas run falcon on feet
ghete galbene piele
hama stiftplatte einhorn amazon
moleton nike preço
veste velour carhartt
bañador neopreno mujer oysho
jogging fille 14 ans adidas
melhores marcas de mochilas masculinas
beistelltisch mit stauraum
nike air max 97 silber
adidas niño verde agua
béret a pompon bretelles uniforme
rompecabezas de obras de arte para arma
venta de bicicletas para ejercicio
sudadera nike vintage
lidl online dirndl
adidas noir doré
foot locker nike react element
filtre pour aspirateur samsung sc4780
adidas stabil x junior

kudi said...

Buy marijuana-flowers Online


Buy Blue-Moon-Rock Online


Buy Alaskan-Thunder-fuck Online


Buy Blue-Dream-Marijuana-Strain Online


Marijuana-Edibles for sale


Buy Cbd-Oil Online


Vapes-and-Carts For Sale


Buy Cannabis-Concentrates Online


Buy cannabis-seeds Online


Buy Psychedelics Online


Buy-Blue-Cheese-Online-usa


Buy Bruce-Banner-Sush-strain Online


Buy Goldern-Teacher Online


Buy Blue-Berry-Moon-Rock Online

Unknown said...

american bulldog puppies craigslist

brindle olde english bulldog

blue merle french bulldog

lilac merle french bulldog

bulldogs for sale near me

pitbull puppies craigslist

english bulldog puppies near me

blue merle english bulldog

english bulldog puppies for sale near me

merle bulldog

english bulldogs for sale near me

bulldog puppies near me

merle frenchie

american pitbull puppies for sale

Unknown said...

buy marijuana-edibles online
buy cbd-oils online
buy vapes-and-carts online
buy accessories online
buy auto-flowering-seeds online
buy granddaddy-purple online
buy psychedelics online
buy cannabis-concentrates-online
buy og-kush online
buy dmt-nn-dimethyltryptamine online
buy blue-cheese-weed online
buy purple-haze online
buy strawberry-cough online
buy black-diamond-kush online
buy blue-dream online
buy moon-rock online
buy blue-dream-feminized online
profile.php?id=100069707270977 online
buy marijuana-flowers/sativa/ online
buy marijuana-flowers/indica-strains/ online
buy marijuana-flowers/hybrid/ online
buy vapes-and-carts/dank-vapes/ online
buy sun-rocks online

bedortheadora said...

nike air max de bebe
sfera vestido flecos mostaza
filtre pour aspirateur samsung sc4780
tende doccia milano amazon
adidas superstar purple
jogging fille 14 ans adidas
af1 louis vuitton
sandália rasteira bottero
zapatillas bimba y lola outlet
chinelo slide da melissa
leggings mit spitzenabschluss
cartera levis hombre
ropa de crossfit nike
camisa da ferroviária
jersey rombos hm
gucci forocoches
sudadera nike vintage
shirt mit schnürung am ausschnitt
gants si assault factory pilot noir oakley
hama stiftplatte einhorn amazon
outlet nike floresta
sacoche lv district
nike hoodie xxl ebay
timberland herren 3 eye
kit citofono terraneo amazon
nike presto extreme pas cher
gucci handbags uk
nike huarache kobe bryant
tight leggings adidas
bolsas de deporte nike negra hombre grande
style année 80 femme
adidas personalised shoes
sandalia rafaela melo
survetement adidas homme militaire
vestido de niña rosa palo
adidas noir doré
adidas rock climbing
adidas boost 350 black

MR.Zero said...

Great post 조개모아! I am actually getting 무료성인야동ready to across this information 무료야동사이트, is very helpful my friend 한국야동. Also great blog here 실시간야동 with all of the valuable information you have 일본야동. Keep up the good work 성인사진 you are doing here 중국야동. 무료야동

MR.Zero said...

Great post 먹중소! I am actually getting 먹튀중개소ready to across this information 토토사이트, is very helpful my friend 먹튀검증. Also great blog here 온라인카지노 with all of the valuable information you have 먹튀검증사이트. Keep up the good work 안전놀이터 you are doing here 먹튀사이트. 검증사이트

MR.Zero said...

Great post 토렌트사이트! I am actually getting 야동사이트ready to across this information 먹튀검증사이트, is very helpful my friend 웹툰사이트. Also great blog here 성인용품 with all of the valuable information you have 스포츠중계. Keep up the good work 드라마다시보기 you are doing here 한인사이트. 무료야동

JOHNSON said...

best weed market
buy medical weed online
buy granddaddy purple weed online
buy white widows strain online
buy gelato strain exotic online
buy og kush strain online
moon rocks for sale online
buy silver haze strain online

Rj Zillionz said...

TKO Carts

JOHNSON said...

amf og
atomik moon rocks
ambrosia strain
blue dream vs og kush
citrix leafly
citrix strain
eleven roses strain
gorilla gas strain
pootie tang strain
pootie tang strain
laughing gym look alikes

Voilet said...

Are you looking for were to buy weed online and ship any where with no marijuana license or medical marijuana card? THC Bulk Supplies is your togo cannabis store to buy weed online like no other store where to buy marijuana online is a problem. Weed for sale here at THC Bulk Supplies is very easy and here you will fine moon rocks for sale and also exotic cartse

buy marijuana online
moon rocks for sale
exotic carts
moon rock weed
weed for sale
marijuana flowers
buy weed online

NJC said...

https://www.facebook.com/Jack-russell-puppies-looking-for-a-lovely-home-103472108733880/

tommy said...
This comment has been removed by the author.
tommy said...

buy jack russell puppies online
buy french bulldog puppy online
buy corgi puppies online


rj zz said...

OriginMushrooms.org is an online Magic Mushrooms Dispensary in USA. Shop the largest selection of dried mushrooms, Psilocybin edibles and Microdose capsule pills

Randicard said...

LSD For sale

MDMA For Sale

Buy Magic-Mushrooms Online


Buy DMT Online

Buy Ayahuasca Online



Where To Buy Psychedelic Drugs Online USA

Randicard said...

LSD For sale

MDMA For Sale

Buy Magic-Mushrooms Online


Buy DMT Online

Buy Ayahuasca Online



Where To Buy Psychedelic Drugs Online USA



buy ketamine-liquid online

Buy ketamine-powder Online


Buy ketamine-pills Online

Buy ketamine-crystal-powder Online

it's g.payne said...

buy ragdollcatkitten online

it's g.payne said...

buy ragdollcatkitten online
buy ragdollcatkitten online

Randicard said...

LSD For sale

MDMA For Sale

Buy Magic-Mushrooms Online


Buy DMT Online

Buy Ayahuasca Online



Where To Buy Psychedelic Drugs Online USA



buy ketamine-liquid online

Buy ketamine-powder Online


Buy ketamine-pills Online

Buy ketamine-crystal-powder Online

hippie store

tko carts said...

buy tko-extracts-and-tko-carts online
buy edibles online
tkocarts.us online

Victor said...

Glo Carts

Unknown said...

https://goo.gl/maps/3Y9cacYn6nfYML91A

https://goo.gl/maps/KP1qe8MqFLHJJoPq6

Randicard said...


Buy kratom Drugs OnlinE

buy-edibles-mushrooms-online

Buy DMT Online


hippiestore.org

buy 1A LSD(ALD-52) online



buy LSD sheets online



buy Ibogaine drugs online

Buy MDMA Online

Unknown said...

buy one-up-psilocybin-mushroom-chocolate-bar/ online
https://goo.gl/maps/3Y9cacYn6nfYML91A
buy real cookie carts online
fake cookie carts online

Related Posts with Thumbnails