не был ли веб-сайт/сервис QA/теста, который позволит Вам определить веб-страницу, которой Вы хотели быть представленными в определенном браузере (IE, Firefox, версия x, y, z Safari), и они отправят снимок по почте назад Вам'.
я не могу помнить сервис - возможно, другие разработчики, которые часто посещают ajaxian, мог бы помнить его?
Вам действительно нужно изображение в виде байт []
? Что именно вы ожидаете в байте []
- полное содержимое файла изображения, закодированное в любом формате, в котором находится файл изображения, или значения пикселей RGB?
Другие ответы здесь покажут вам, как читать файл в байт []
. Ваш байт []
будет содержать точное содержимое файла, и вам нужно будет его декодировать, чтобы делать что-либо с данными изображения.
Стандартный API Java для чтения (и записи) изображений - это ImageIO API, который вы можете найти в пакете javax.imageio
. Вы можете прочитать изображение из файла с помощью всего одной строчки кода:
BufferedImage image = ImageIO.read(new File("image.jpg"));
Это даст вам BufferedImage
, а не байт []
. Чтобы получить данные изображения, вы можете вызвать getRaster ()
в BufferedImage
. Это даст вам объект Raster
, у которого есть методы для доступа к данным пикселей (у него есть несколько методов getPixel ()
/ getPixels ()
).
Найдите в документации API для javax.imageio.ImageIO
, java.awt.image.BufferedImage
, java.awt.image.Raster
и т. Д.
ImageIO по умолчанию поддерживает ряд форматов изображений: JPEG, PNG, BMP, WBMP и GIF. Можно добавить поддержку большего количества форматов (вам понадобится плагин, реализующий интерфейс поставщика услуг ImageIO).
См. Также следующее руководство: Мне нужно экспортировать модель из Blender, в которой ось z направлена вверх, в OpenGL, где ось y обращена вверх.
Для каждой координаты (x, y, z) это просто; просто поменяйте местами значения y и z: (x, z, y).
Поскольку я поменял местами все значения y и z, любую матрицу, которую я использую, также нужно перевернуть, чтобы она имела такой же эффект.
После долгих поисков я в конце концов нашел решение на gamedev :
Если ваша матрица выглядит так:
{ rx, ry, rz, 0 }
{ ux, uy, uz, 0 }
{ lx, ly, lz, 0 }
{ px, py, pz, 1 }
Чтобы изменить ее слева направо или справа налево, переверните ее следующим образом:
{ rx, rz, ry, 0 }
{ lx, lz, ly, 0 }
{ ux, uz, uy, 0 }
{ px, pz, py, 1 }
Поскольку это похоже на домашнее задание; Я дам вам подсказку: что вы можете сделать, чтобы сделать определитель матрицы отрицательным?
Далее (лучший совет): Поскольку вы уже знаете, как выполнять это преобразование с отдельными векторами, не так ли? думаете, что сможете сделать это с базовыми векторами, которые охватывают преобразование, которое представляет матрица? (Помните, что матрицу можно рассматривать как линейное преобразование, выполняемое на кортеже единичных векторов)
Это зависит от того, преобразовываете ли вы свои точки, умножая матрицу слева или справа.
Если вы умножаете слева (например: Ax = x ', где A - матрица, а x' преобразованная точка), вам просто нужно поменять местами второй и третий столбцы. Если вы умножаете справа (например: xA = x '), вам нужно поменять местами вторую и третью строки.
Если ваши точки являются векторами-столбцами, то вы находитесь в первом сценарии.