# Old image broken after setting new camport

**URL:** https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66
**Category:** C-style API
**Tags:** camport, acquisition
**Created:** [May 11, 2017, 12:00pm UTC](https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66 "2017-05-11T12:00:38Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![parsd](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/parsd/32/7_2.png) [@parsd](https://forum.commonvisionblox.com/u/parsd)
#### Post date: [May 11, 2017, 3:44pm UTC](https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66/5 "2017-05-11T15:44:07Z")

</div>

You can also use the following helper function which does exactly what you want all the time:

```cpp
/// Opens port with the given \a portNumber on the given \a driver.
/// \return \b nullptr on error; \b IMG handle of opened driver port.
IMG OpenDriverPort(const char *driver, int portNumber)
{
  IMG hImg = nullptr;
  
  if(LoadImageFile(driver, hImg))
  {
    cvbdim_t currentPort = -1;
    if(CS2GetCamPort(hImg, currentPort) >= 0 && currentPort != portNumber)
    {
      IMG hNewPort = nullptr;
      if(CS2SetCamPort(hImg, portNumber, 0, hNewPort) >= 0)
      {
        ReleaseObject(hImg);
        hImg = hNewPort;
      }
    }
  }

  return hImg;
}

```

You can call it like this:

```cpp
IMG hFirstCamera = OpenDriverPort("GenICam.vin", 0);
IMG hSecondCamera = OpenDriverPort("GenICam.vin", 1);

```

---

_[View the full topic](https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66)._
