есть возможность записать значения double twoD в буферизованное изображение, не делая кастинг типа в Java ?? У меня есть двухдисковая матрица с двойными значениями. Я хочу записать его как изображение, но в Buffered Image могут быть записаны только целые значения. наконец, я должен уметь читать эти двойные значения из этого образа. есть идеи ?? помочь мнекак записать двойные значения в буферизованное изображение
ответ
Да, можно, но сначала вы должны создать BuffuredImage с DataBuffer типа DataBufferDouble:
public static BufferedImage Double(int width, int height, int channel)
{
ColorSpace myColorSpace = new FloatCS(channel == 1 ? ColorSpace.TYPE_GRAY : ColorSpace.TYPE_RGB, channel) ;
ColorModel myColorModel = new ComponentColorModel(myColorSpace,null,false,false,ColorModel.OPAQUE,DataBuffer.TYPE_DOUBLE) ;
return new BufferedImage(myColorModel, myColorModel.createCompatibleWritableRaster(width, height), false, null) ;
}
Затем вы получаете доступ к пикселям, используя Растр или непосредственно с DataBuffer, но не getRGB.
Спасибо @FiReTiTi. может у, пожалуйста, объясните мне, как использовать это на изображении? –
Код, который я вам только что дал, - это уже изображение. Затем вы можете получить доступ к значениям пикселей с помощью Raster (mymimage.getRaster()) с помощью методов getSample и setSample или с помощью DataBuffer: double [] buffer = ((DataBufferDouble) my image.getRaster(). GetDataBuffer()). получить данные() – FiReTiTi
Вопросы, требующие помощи в выполнении домашних заданий, должны содержать резюме работы, которую вы сделали до сих пор, чтобы решить проблему, и описание проблемы, которую вы решаете. См. [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –
Да, вы можете. Вам необходимо создать пользовательский 'BufferedImage', поддерживаемый' DataBuffer.TYPE_DOUBLE' 'SampleModel' и' DataBuffer'. Не уверен, насколько это полезно, но, по крайней мере, очень выполнимо. Значения 'double' будут напрямую доступны через массив поддержки DataBuffer. – haraldK
благодарю за помощь г-жа #haraldK. я попробую это –