我一直在处理有关远程感应图像处理和图像序列循环的项目。每个结果图像(以JPEG或PNG格式)大约有8000 * 4000个像素。我们的用户通常希望根据感兴趣的区域循环图像序列(超过50张)。因此,我必须根据用户的可视化客户端大小从每个图像中提取所需的查看区域。例如,如果用户当前的客户端视图为640 * 480,则我将根据当前的x(列)和y(行)坐标从每个原始图像中找到一个640 * 480数据块,并重新映射到客户端视图。当用户通过鼠标拖动到另一个查看区域时,我们的程序必须尽快重新加载每个原始图像中的区域数据。
我知道既没有JPEG库也没有PNG库具有内置的数据块读取例程,例如 long ReadRectangle(long x0,long y0,long x1,long y1,char * RectData); long ReadInaRectangle(long x0,long y0,short width,short height,char * RectData);
内置的JPEG解压缩器缺乏这种功能。我知道JPEG2000格式有规定可以解压缩图像的特定区域。我对JEPG不是完全确定。
有人建议我使用CreateFileMapping,MapViewOfFile和CreateDIBSection来提交要映射到视图的文件映射的字节数。与*.raw,*.img和*.bmp等简单的平面二进制图像格式不同,JPEG的Blob不仅包含图像数据,还包括复杂的JPG头。因此,很难从JPEG文件中映射出一块数据块。
有人建议我使用图像平铺或图像金字塔技术生成子图像,就像许多流行的图像可视化(Google Earth等)和GIS应用程序(WebGIS等)所做的那样。
我该如何解决这个问题?
感谢您的帮助。
Golden Lee
我知道既没有JPEG库也没有PNG库具有内置的数据块读取例程,例如 long ReadRectangle(long x0,long y0,long x1,long y1,char * RectData); long ReadInaRectangle(long x0,long y0,short width,short height,char * RectData);
内置的JPEG解压缩器缺乏这种功能。我知道JPEG2000格式有规定可以解压缩图像的特定区域。我对JEPG不是完全确定。
有人建议我使用CreateFileMapping,MapViewOfFile和CreateDIBSection来提交要映射到视图的文件映射的字节数。与*.raw,*.img和*.bmp等简单的平面二进制图像格式不同,JPEG的Blob不仅包含图像数据,还包括复杂的JPG头。因此,很难从JPEG文件中映射出一块数据块。
有人建议我使用图像平铺或图像金字塔技术生成子图像,就像许多流行的图像可视化(Google Earth等)和GIS应用程序(WebGIS等)所做的那样。
我该如何解决这个问题?
感谢您的帮助。
Golden Lee