проверка загруженного разрешения изображения и деталей на стороне клиента - PullRequest
1 голос
/ 30 мая 2011

Во Flex мы обычно загружаем изображение с flex end и загружаем на сервер, я хочу знать, можем ли мы проверить некоторые детали, например, я хочу узнать разрешение изображения (на стороне клиента) до его загрузки на сервер,

Будет две прибыли: во-первых, клиенту не нужно долго ждать загрузки изображения, а в случае, если определение разрешения изображения находится на стороне сервера, значит, оно будет занимать время, даже изображение для быть загруженным не ожидаемого разрешения

во-вторых, улучшится взаимодействие с пользователем и интерфейс с приложением flex,

так, пожалуйста, дайте некоторую идею для такого рода проверки со стороны гибкого конца

Ответы [ 4 ]

1 голос
/ 30 мая 2011

Для flex вы можете использовать функцию FileReference.browse для загрузки файла с жесткого диска. Если вы хотите проверить ширину и высоту изображения, вы можете обратиться к ответу Дмитрия Сапельникова. Если вы хотите проверить общее количество байтов изображения, вы можете попробовать:

var bitmapByteSize:int = bitmap.bitmapData.getPixels(bitmap.bitmapData.rect).length;

Может быть недостаточно только проверки разрешения изображения. Если вам нужно изменить изображение, вы можете взглянуть на следующее: http://marstonstudio.com/2007/10/19/how-to-take-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/

Это может дать вам несколько советов.

1 голос
/ 30 мая 2011

Полагаю, вы говорите о настольном приложении. В противном случае вы не сможете прикоснуться к какому-либо локальному файлу (вы можете только инициировать его загрузку на сервер).

Для работы с jpg и png вы можете использовать пакеты com.adobe.images из as3corelib . Trere может получить высоту / ширину или разрешение изображения.

Хотя я верю, что лучше выполнять манипуляции с изображениями на стороне сервера

1 голос
/ 30 мая 2011

Если вы имеете в виду измерение ширины / высоты растрового изображения, загруженного в ваше Flex-приложение, ширина / высота хранится в структуре BitmapData http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

Для управления изображением flex его можно получить с помощью конструкции:

// image_control is an instance of mx.controls.Image
var width:Number = 0;
var height:Number = 0;
if (image_control.content is Bitmap)
{
   height= (image_control.content as Bitmap).bitmapData.width;
   height= (image_control.content as Bitmap).bitmapData.height;
}
0 голосов
/ 30 мая 2011

Является ли ваше приложение Flex настольным?Если это так, вы можете сначала загрузить файл с жесткого диска пользователя, например: http://mariusht.com/blog/2009/04/01/loading-local-images-directly-into-flash-player-10/

, а затем получить ширину и высоту (и, возможно, способ получить размер) перед отправкой на сервер.

Кстати, разрешение любого изображения, которое будет отображаться в Интернете, всегда составляет 72 DPI.Например, вы не можете изменить разрешение JPEG или PNG, но вы можете распечатать их с разным разрешением.Я думаю, что вы на самом деле ищете размеры (ширина / высота).

...