# Import From buffer

**URL:** https://discourse.itk.org/t/import-from-buffer/5158
**Category:** Beginner Questions
**Created:** [July 4, 2022, 7:31pm UTC](https://discourse.itk.org/t/import-from-buffer/5158 "2022-07-04T19:31:58Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Oddone-Scatena](https://discourse.itk.org/user_avatar/discourse.itk.org/oddone-scatena/32/2651_2.png) [@Oddone-Scatena](https://discourse.itk.org/u/Oddone-Scatena)
#### Post date: [July 4, 2022, 7:31pm UTC](https://discourse.itk.org/t/import-from-buffer/5158/1 "2022-07-04T19:31:58Z")

</div>

I would like to import an image from buffer; is it right?

```cpp
const unsigned short numberOfPixels = pow(size_import_buffer[0] , 3);
auto * localBuffer = new PixelType[numberOfPixels];
PixelType * it = localBuffer;

for(int z= 0 ; z < size_for_dimensions[2]; z++)
    for(int y= 0 ; y < size_for_dimensions[2]; y++)
        for(int x= 0 ; x < size_for_dimensions[2]; x++)
		{
			const ImageType::IndexType pixelIndex_Buffer_1 = {{ x, y, z }}; // Position of {X,Y,Z}
			std::cerr<<"HI: "<<std::endl;
		
			*it++ = Flipped_Trachea -> GetPixel(pixelIndex_Buffer_1);
        }

const bool importImageFilterWillOwnTheBuffer = true;
importFilter->SetImportPointer(localBuffer, numberOfPixels, importImageFilterWillOwnTheBuffer);

auto writerTraqueia = WriterTypeTraqueia::New();
writerTraqueia->SetFileName("TRACHEA AIRWAY SEG.dcm");
writerTraqueia->SetInput(importFilter->GetOutput());
writerTraqueia->SetImageIO(gdcmIO);
writerTraqueia->Update();

```

---

<div class="post-metadata">

### Author: ![dzenanz](https://discourse.itk.org/user_avatar/discourse.itk.org/dzenanz/32/1093_2.png) [@dzenanz](https://discourse.itk.org/u/dzenanz)
#### Post date: [July 5, 2022, 2:16pm UTC](https://discourse.itk.org/t/import-from-buffer/5158/2 "2022-07-05T14:16:22Z")

</div>

Based on your code sample, I don’t know what is the purpose of `localBuffer`? I think you could achieve the same effect with:

```cpp
const unsigned short numberOfPixels = pow(size_import_buffer[0] , 3);
PixelType * it = Flipped_Trachea->GetBufferPointer();
// we have direct pointer to pixel buffer
// we don't use it, as there is no need to iterate

auto writerTraqueia = WriterTypeTraqueia::New();
writerTraqueia->SetFileName("TRACHEA AIRWAY SEG.dcm");
writerTraqueia->SetInput(Flipped_Trachea);
writerTraqueia->SetImageIO(gdcmIO);
writerTraqueia->Update();

```
