看到一个用ASP写的读取图片文件的长度、宽度的程序,感觉有点意思,于是用C++也写了一个。
#include <iostream> #include <fstream> #include <string> using namespace std; class CImage { private: long m_Width; long m_Height; int get_extension(string fname); public: CImage() { m_Width = 0; m_Height = 0; }; void LoadImage(char* fname); long get_width() { return m_Width; }; long get_height() { return m_Height; }; }; int CImage::get_extension(string fname) { char c = fname.at(fname.length()-1); char c2 = fname.at(fname.length()-3); if ((c == 'f') && (c2 == 'g')){ // file extension name is gif return 1; }else if ((c == 'g') && (c2 == 'j')){ // file extension name is jpg return 2; }else if ((c == 'g') && (c2 == 'p')){ // file extension name is png return 3; }else if ((c == 'p') && (c2 == 'b')){ // file extension name is bmp return 4; } return 0; } void CImage::LoadImage(char *fname) { m_Width = m_Height = 0; ifstream ffin(fname, std::ios::binary); if (!ffin){ cout<<"Can not open this file."<<endl; return; } int result = get_extension(fname); char s1[2] = {0}, s2[2] = {0}; switch(result) { case 1: // gif ffin.seekg(6); ffin.read(s1, 2); ffin.read(s2, 2); m_Width = (unsigned int)(s1[1])<<8|(unsigned int)(s1[0]); m_Height = (unsigned int)(s2[1])<<8|(unsigned int)(s2[0]); break; case 2: // jpg ffin.seekg(164); ffin.read(s1, 2); ffin.read(s2, 2); m_Width = (unsigned int)(s1[1])<<8|(unsigned int)(s1[0]); m_Height = (unsigned int)(s2[1])<<8|(unsigned int)(s2[0]); break; case 3: // png ffin.seekg(17); ffin.read(s1, 2); ffin.seekg(2, std::ios::cur); ffin.read(s2, 2); m_Width = (unsigned int)(s1[1])<<8|(unsigned int)(s1[0]); m_Height = (unsigned int)(s2[1])<<8|(unsigned int)(s2[0]); break; case 4: // bmp ffin.seekg(18); ffin.read(s1, 2); ffin.seekg(2, std::ios::cur); ffin.read(s2, 2); m_Width = (unsigned int)(s1[1])<<8|(unsigned int)(s1[0]); m_Height = (unsigned int)(s2[1])<<8|(unsigned int)(s2[0]); break; default: cout<<"NO"<<endl; break; } ffin.close(); }; int main(int argc, char *argv[]) { if (argc < 2){ printf("usage: program imagefilename/n"); return 0; } CImage test; test.LoadImage(argv[1]); cout<<"width:"<<test.get_width()<<endl; cout<<"height:"<<test.get_height()<<endl; return 0; }
我有一个后端节点。jsendpoint,该endpoint应接受base64中包含QR码的图像并返回16位字母数字字符串。(我正在使用qrcode阅读器包) 但是,我遇到一个错误,它说我需要传递一个宽度和高度的图像缓冲区。我不确定如何从base64图像字符串中获得宽度和高度,因为npm上的许多图像包都使用中的文件。png或。jpg格式。 任何建议,我如何可以获得的宽度和高度的图像在Base64?
本文向大家介绍Javascript获取图片原始宽度和高度的方法详解,包括了Javascript获取图片原始宽度和高度的方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 网上关于利用Javascript获取图片原始宽度和高度的方法有很多,本文将再次给大家谈谈这个问题,或许会对一些人能有所帮助。 方法详解 页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能首先想到的是元素的innerWi
我正在尝试阅读nexus 7 2013设备的宽度和高度,使用fallowing js代码: 它在所有设备上都能正常工作,但nexus 7 2013除外。只有在这个设备上,它有时读取1920的宽度,有时读取960的宽度。 有人能帮我理解为什么会发生这种情况以及如何克服这个问题吗?谢谢!
本文向大家介绍Android利用Intent实现读取图片操作,包括了Android利用Intent实现读取图片操作的使用技巧和注意事项,需要的朋友参考一下 本文实例演示如何从图库(Gallery)中读取图像并用ImageView将它显示出来,供大家参考,具体内容如下 运行本示例前,需要先利用相机模拟拍摄一些图片到图库中。 1、运行截图 2、主要设计步骤 (1)添加ch1203_ReadGal
问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。
问题内容: 我一直在寻找一种从C程序中获取终端宽度的方法。我不断提出的思路是: 但是每次我尝试得到 这是执行此操作的最佳方法,还是有更好的方法?如果没有,我该如何工作? 编辑:固定代码是 问题答案: 您是否考虑过使用getenv()?它使您可以获取包含端子列和行的系统环境变量。 或者,使用您的方法,如果您想查看内核显示的终端大小(最好是在调整终端大小时),则需要使用TIOCGWINSZ而不是TIO