Для базовых примеров, используя разделитель строк таблицы подсчета, такой как Джеффа Модена, или любую другую функцию разделения, которую вы хотите вместо DelimitedSplit8K()
ниже, вы можете разделить их на пробелы, а затем собрать их обратно вместе после исправления правильного случая. Обратите внимание, что использование этого типа функции разделения быстрее, чем обычно встречающиеся методы RBAR (с циклом и т. Д.).
declare @table table (v varchar(4000))
insert into @table
values
('abc abc abc'),
('Def abc ABC'),
('qrs ABC abc'),
('tuv'),
(' this is an odd-string# that3 has some 435 in it. It has leading and trailing spaces? ')
select distinct
*
,STUFF((
SELECT ' ' + upper(left(lower(rtrim(ltrim(x.Item))),1)) + right(lower(rtrim(ltrim(x.Item))),len(rtrim(ltrim(x.Item))) - 1)
from @table t
cross apply DelimitedSplit8K(rtrim(ltrim(v)),' ') x
where t.v = b.v
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
from @table b
У Вас есть эта функция C, которая может извлечь соответствующие данные для Вас.
Это - стандартная программа C, но должно скомпилировать прекрасный с C++.
Передайте его нормальный указатель ФАЙЛА (от fopen) к началу jpeg файла и двух международных указателей, которые будут установлены с высотой изображения и шириной.
Или можно найти в библиотеке Boost jpeg класс, который имеет правильную функцию (От Adobe Универсальная библиотека изображений).
boost::gil::jpeg_read_dimensions (const char *filename)
Возвращает ширину и высоту файла JPEG в указанном местоположении. Станд. бросков:: ios_base:: отказ, если местоположение не соответствует допустимому файлу JPEG.
libjpeg является довольно маленьким, с открытым исходным кодом и доступным на OpenVMS. Это, вероятно, более быстро для установки его, чем обработать JPEG самостоятельно.
Необходимо смочь использовать этот jpeg lib с этим патчем для OpenVMS
Никакая потребность в полной libjpeg библиотеке только для получения этой информации (если Вы не должны делать что-то еще с изображениями). ImageInfo мог бы помочь Вам. Это - класс Java, но существуют порты для других языков, включая C++.
Как указано, Exif мог бы изменить их информация (например, с установкой ориентации).
Вы можете попробовать пробуть GDAL библиотеку , которая служит слоем абстракции для большого количества форматов растровых данных, в основном используется в геопространственных приложениях для GIS / RS.
GDAL предоставляет количество API для языков C, C ++ и сценариев. Конечно, он поддерживает jpeg изображения и его варианты, такие как jpeg2000 и многое другое.
Вот очень простой пример, как открыть образ JPEG и запрашивать его размеры:
#include <gdal_priv.h>
GDALAllRegister(); // call ones in your application
GDALDataset* ds = (GDALDataset*)GDALOpen("my.jpeg", GA_ReadOnly);
int width = ds->GetRasterXSize();
int height = ds->GetRasterYSize(),
int nbands = ds->GetRasterCount();
Проверка Учебное пособие по API GDAL для более полного примера.