Как генерировать изображение на стороне сервера в java [blob-> string_image -> * .png или .jpg] - PullRequest
0 голосов
/ 24 апреля 2010

Я хочу создать изображение на стороне сервера. Мое изображение хранится в базе данных сервера в формате blob, и я могу преобразовать его в string_image. Тогда как я могу преобразовать это string_image в фактический формат .jpg или .png?

На самом деле я размещаю вложение в виде изображения на стене пользователя Facebook. Как сгенерировать изображение на стороне сервера в Java? Есть ли пример кода для этого?

1 Ответ

1 голос
/ 24 апреля 2010

Если у вас есть изображение в формате Blob, тогда лучше всего использовать ImageIO и читать поток ввода BLOB напрямую.

Это даст вам объект java.awt.BufferedImage, который вы затем сможете рендерить на любой тип изображения, используя ImageIO.

BufferedImage image = ImageIO.read( blob.getInputStream() );
// Feel free to modify the image here using image.createGraphics()
// add a water mark if you're feeling adventurous
ImageIO.write( image, "png", someOutputStream );

Я не очень хорошо знаю, как Facebook использует изображения. Я думаю, что это зависит от того, что вы делаете. Что касается приложений Facebook, я думаю, что вы по-прежнему отвечаете за размещение изображения, но Facebook будет выступать в качестве прокси-сервера для кэширования и запрашивать изображение только один раз, а затем предоставлять его всем клиентам, которым необходимо его увидеть. Если это изображение пользователя, то я думаю, что Facebook полностью сохраняет изображение (очевидно, что пользователь, загружающий изображение, обычно не имеет его на другом сервере).

Если вы хотите просто отобразить изображение «как есть» в ответ на веб-запрос, то вы можете перенаправить выходные данные Blob напрямую клиенту, хотя это некоторое время сохраняет открытыми соединения с базой данных, возможно, вы лучше копировать в дисковый кеш, чем обслуживать клиента.

Я должен признаться, я не смог найти ничего полезного о том, что на самом деле stirng_image? Возможно, вы могли бы уточнить, если этот ответ не соответствует вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...