я - больше Java-разработчик и существует стандартный способ прочитать изображения:
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.png"));
} catch (IOException e) {
}
но каков C++ способ загрузить изображения? Я хочу загрузить все изображения в определенном каталоге в массив или около этого.
Лично я предпочитаю библиотеку ImageMagick .
Существует множество доступных библиотек обработки графики, и нет ни одного варианта, который бы явно превосходил другие. Я советую составить короткий список из 3 или 4, взглянуть на документацию по каждому из них и попытаться написать для каждого простую программу на полстраницы. Используйте тот, который вам удобнее всего.
Библиотека, которую вы хотите использовать для загрузки изображений, будет зависеть от того, что вы собираетесь с ней делать. Если вы используете фреймворк, такой как QT или wxWidgets, он предоставит процедуры загрузки изображений.
Другая возможность - использовать библиотеку SDL Image и работать с поверхностями SDL, что позволит вам работать с пиксельным уровнем, если вам нужно.
Я бы сказал, что наиболее близким к стандартному способу работы вы можете воспользоваться с помощью Boost / Adobe Generic Image Library .
Qt имеет хорошую поддержку изображений, бесплатен и кроссплатформенен.
Обратите внимание на класс qimage
В C++ не существует стандартного "способа" загрузки изображений или файлов любого другого рода. Эта возможность предоставляется (обычно сторонними) библиотеками.
В Windows для загрузки изображений в память можно использовать API GDI или DirectX.
Вы также можете использовать любую из множества различных библиотек. Некоторые из них приходят на ум:
Есть много, много других библиотек, и некоторые могут быть более подходящими, чем другие, в зависимости от того, что вы пытаетесь сделать.
Например, если вы собираетесь работать только с файлами JPEG, то вам лучше использовать libIJG. Или если вы будете использовать только PNG, то вам больше подойдут libPNG или cairo.