Определение размера файла образа + размеры с помощью JavaScript?

, Как я могу возвратить TStringList и все еще освободить его в локальной функции?

Вы не можете. При освобождении его в локальной функции Вы не можете использовать возвращаемое значение. Результат и vStrList указывают на тот же объект TStringList в памяти. TStringList является классом, и

Result := vStrList

поэтому не копирует список строк, но только копирует ссылку.

Так, вместо этого необходимо освободить список строк в контексте вызова после того, как Вы будете сделаны, работая с ним или передадите список строк в качестве параметра Вашей функции как это

procedure FuncStringList (StringList : TStringList);

и позволите коду вызова создать и освободить список строк. Как указано другими ответами, это - предпочтительный путь, так как он делает владение очень ясным.

44
задан Lightness Races with Monica 8 February 2012 в 14:23
поделиться

5 ответов

Вы можете получить размеры, используя getElement (...). Width и ... height .

Поскольку JavaScript не может доступ к чему-либо на локальном диске по соображениям безопасности, вы не можете просматривать локальные файлы. Это также верно для файлов в кэше браузера.

Вам действительно нужен сервер, который может обрабатывать запросы AJAX. На этом сервере установите службу, которая загружает изображение и сохраняет поток данных в фиктивном выводе, который просто считает байты. Обратите внимание, что вы не всегда можете полагаться на поле заголовка Content-length , поскольку данные изображения могут быть закодированы. В противном случае было бы достаточно отправить HTTP-запрос HEAD.

) Чтобы получить исходные размеры изображения, вы можете создать элемент IMG программно, например:

var img = document.createElement('img');

img.onload = function () { alert(img.width + ' x ' + img.height); };

img.src='http://sstatic.net/so/img/logo.png';
76
ответ дан 26 November 2019 в 21:56
поделиться

Вы можете найти размер изображения на странице, используя что-то вроде

document.getElementById('someImage').width

размера файла, однако вам придется использовать что-то на стороне сервера

0
ответ дан 26 November 2019 в 21:56
поделиться

Единственное, что вы можете сделать, - это загрузить изображение на сервер и проверить размер и размер изображения, используя какой-либо язык на стороне сервера, например C #.

Изменить:

При необходимости вы можете нельзя делать только с использованием javascript.

-6
ответ дан 26 November 2019 в 21:56
поделиться

Вы можете получить размеры, используя getElement (...). width и ... height .

Поскольку JavaScript не может получить доступ ни к чему на локальном диске по соображениям безопасности, вы не можете просматривать локальные файлы. Это также верно для файлов в кэше браузера.

Вам действительно нужен сервер, который может обрабатывать запросы AJAX. На этом сервере установите службу, которая загружает изображение и сохраняет поток данных в фиктивном выводе, который просто считает байты. Обратите внимание, что вы можете ' t всегда полагаться на поле заголовка Content-length , поскольку данные изображения могут быть закодированы. В противном случае было бы достаточно отправить HTTP-запрос HEAD.

1
ответ дан 26 November 2019 в 21:56
поделиться
var img = new Image();
img.src = sYourFilePath;
var iSize = img.fileSize;
-2
ответ дан 26 November 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: