当前位置:首页 » 编程软件 » 像素脚本代码

像素脚本代码

发布时间: 2022-05-21 19:31:14

① 求大神给一段C++编程的代码,只求能够读出BMP图像像素值就行了。

#include<math.h>
#include<iomanip.h>
#include<stdlib.h>
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
#include<fstream.h>

//---------------------------------------------------------------------------------------
//以下该模块是完成BMP图像(彩色图像是24bitRGB各8bit)的像素获取,并存在文件名为xiang_su_.txt中
unsignedchar*pBmpBuf;//读入图像数据的指针

intbmpWidth;//图像的宽
intbmpHeight;//图像的高
RGBQUAD*pColorTable;//颜色表指针

intbiBitCount;//图像类型,每像素位数

//-------------------------------------------------------------------------------------------
//读图像的位图数据、宽、高、颜色表及每像素位数等数据进内存,存放在相应的全局变量中
boolreadBmp(char*bmpName)
{
FILE*fp=fopen(bmpName,"rb");//二进制读方式打开指定的图像文件

if(fp==0)
return0;

//跳过位图文件头结构BITMAPFILEHEADER

fseek(fp,sizeof(BITMAPFILEHEADER),0);

//定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中

BITMAPINFOHEADERhead;

fread(&head,sizeof(BITMAPINFOHEADER),1,fp);//获取图像宽、高、每像素所占位数等信息

bmpWidth=head.biWidth;

bmpHeight=head.biHeight;

biBitCount=head.biBitCount;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)

intlineByte=(bmpWidth*biBitCount/8+3)/4*4;//灰度图像有颜色表,且颜色表表项为256

if(biBitCount==8)
{

//申请颜色表所需要的空间,读颜色表进内存

pColorTable=newRGBQUAD[256];

fread(pColorTable,sizeof(RGBQUAD),256,fp);

}

//申请位图数据所需要的空间,读位图数据进内存

pBmpBuf=newunsignedchar[lineByte*bmpHeight];

fread(pBmpBuf,1,lineByte*bmpHeight,fp);

fclose(fp);//关闭文件

return1;//读取文件成功
}

//-----------------------------------------------------------------------------------------
//给定一个图像位图数据、宽、高、颜色表指针及每像素所占的位数等信息,将其写到指定文件中
boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight,intbiBitCount,RGBQUAD*pColorTable)
{

//如果位图数据指针为0,则没有数据传入,函数返回

if(!imgBuf)
return0;

//颜色表大小,以字节为单位,灰度图像颜色表为1024字节,彩色图像颜色表大小为0

intcolorTablesize=0;

if(biBitCount==8)
colorTablesize=1024;

//待存储图像数据每行字节数为4的倍数

intlineByte=(width*biBitCount/8+3)/4*4;

//以二进制写的方式打开文件

FILE*fp=fopen(bmpName,"wb");

if(fp==0)
return0;

//申请位图文件头结构变量,填写文件头信息

BITMAPFILEHEADERfileHead;

fileHead.bfType=0x4D42;//bmp类型

//bfSize是图像文件4个组成部分之和

fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+colorTablesize+lineByte*height;

fileHead.bfReserved1=0;

fileHead.bfReserved2=0;

//bfOffBits是图像文件前3个部分所需空间之和

fileHead.bfOffBits=54+colorTablesize;

//写文件头进文件

fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);

//申请位图信息头结构变量,填写信息头信息

BITMAPINFOHEADERhead;

head.biBitCount=biBitCount;

head.biClrImportant=0;

head.biClrUsed=0;

head.biCompression=0;

head.biHeight=height;

head.biPlanes=1;

head.biSize=40;

head.biSizeImage=lineByte*height;

head.biWidth=width;

head.biXPelsPerMeter=0;

head.biYPelsPerMeter=0;

//写位图信息头进内存

fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp);

//如果灰度图像,有颜色表,写入文件

if(biBitCount==8)
fwrite(pColorTable,sizeof(RGBQUAD),256,fp);

//写位图数据进文件

fwrite(imgBuf,height*lineByte,1,fp);

//关闭文件

fclose(fp);

return1;

}

//----------------------------------------------------------------------------------------
//以下为像素的读取函数
voiddoIt()
{

//读入指定BMP文件进内存

charreadPath[]="nv.BMP";

readBmp(readPath);

//输出图像的信息

cout<<"width="<<bmpWidth<<"height="<<bmpHeight<<"biBitCount="<<biBitCount<<endl;

//循环变量,图像的坐标

//每行字节数

intlineByte=(bmpWidth*biBitCount/8+3)/4*4;

//循环变量,针对彩色图像,遍历每像素的三个分量

intm=0,n=0,count_xiang_su=0;

//将图像左下角1/4部分置成黑色

ofstreamoutfile("图像像素.txt",ios::in|ios::trunc);

if(biBitCount==8)//对于灰度图像
{
//------------------------------------------------------------------------------------
//以下完成图像的分割成8*8小单元,并把像素值存储到指定文本中。由于BMP图像的像素数据是从
//左下角:由左往右,由上往下逐行扫描的
intL1=0;
inthang=63;
intlie=0;
//intL2=0;
//intfen_ge=8;
for(intfen_ge_hang=0;fen_ge_hang<8;fen_ge_hang++)//64*64矩阵行循环
{
for(intfen_ge_lie=0;fen_ge_lie<8;fen_ge_lie++)//64*64列矩阵循环
{
//--------------------------------------------
for(L1=hang;L1>hang-8;L1--)//8*8矩阵行
{
for(intL2=lie;L2<lie+8;L2++)//8*8矩阵列
{
m=*(pBmpBuf+L1*lineByte+L2);
outfile<<m<<"";
count_xiang_su++;
if(count_xiang_su%8==0)//每8*8矩阵读入文本文件
{
outfile<<endl;
}
}
}
//---------------------------------------------
hang=63-fen_ge_hang*8;//64*64矩阵行变换
lie+=8;//64*64矩阵列变换
//该一行(64)由8个8*8矩阵的行组成
}
hang-=8;//64*64矩阵的列变换
lie=0;//64*64juzhen
}
}

//doublexiang_su[2048];
//ofstreamoutfile("xiang_su_.txt",ios::in|ios::trunc);
if(!outfile)
{
cout<<"openerror!"<<endl;
exit(1);
}
elseif(biBitCount==24)
{//彩色图像
for(inti=0;i<bmpHeight;i++)
{
for(intj=0;j<bmpWidth;j++)
{
for(intk=0;k<3;k++)//每像素RGB三个分量分别置0才变成黑色
{
//*(pBmpBuf+i*lineByte+j*3+k)-=40;
m=*(pBmpBuf+i*lineByte+j*3+k);
outfile<<m<<"";
count_xiang_su++;
if(count_xiang_su%8==0)
{
outfile<<endl;
}
//n++;
}
n++;
}


}
cout<<"总的像素个素为:"<<n<<endl;
cout<<"----------------------------------------------------"<<endl;
}

//将图像数据存盘

charwritePath[]="nvcpy.BMP";//图片处理后再存储

saveBmp(writePath,pBmpBuf,bmpWidth,bmpHeight,biBitCount,pColorTable);

//清除缓冲区,pBmpBuf和pColorTable是全局变量,在文件读入时申请的空间

delete[]pBmpBuf;

if(biBitCount==8)
delete[]pColorTable;
}

voidmain()
{
doIt();
}

② JS脚本像这样的哪个是分辨率,我应该调哪个改变分辨率

你做网站时固定了宽高,就不能实现你想要的效果了。最好是用百分比定义。网页总宽100% 表格宽50%这样子定义,就可以实现分辨率的调节。给你个js的文字提示。你试下。网页最好做成1024分辨率的。宽屏用户还是比较少的。相对来说。
显示器检测代码[如果对方的分辨率不是1024*768就出现提示文字]
[你可以改一下分辨率试一下]
====1、将以下代码加入HEML的<body></body>;之间:
<script language="JavaScript1.2">
<!--
var correctwidth=1024
var correctheight=768
if (screen.width!=correctwidth||screen.height!=correctheight)
document.write("本站最佳分辨率: "+correctwidth+"*"+correctheight+". 你当前的分辨率是:"+screen.width+"*"+screen.height+"。设置合适的分辨率才能取得最佳的显示效果!")
//-->
</script>

③ 迷你世界有像素生成器吗

没有,有模型工作台

④ 迷你世界脚本像素怎么做,电脑版的

打开QQ,搜索QQ小程序:迷你世界像素画,点进去,获取基础脚本,再点像素画

望采纳!

⑤ VB像素画代码。

VERSION 5.00
Begin VB.Form frm_PixelPic
Caption = "像素画"
ClientHeight = 3885
ClientLeft = 60
ClientTop = 450
ClientWidth = 3810
LinkTopic = "Form1"
ScaleHeight = 3885
ScaleWidth = 3810
StartUpPosition = 3 '窗口缺省
Begin VB.PictureBox Pic_Box2
Appearance = 0 'Flat
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 3195
Left = 3375
ScaleHeight = 3165
ScaleWidth = 330
TabIndex = 3
Top = 75
Width = 360
Begin VB.Label Lab_Color
BackColor = &H008080FF&
Height = 225
Index = 0
Left = 0
TabIndex = 4
Top = 0
Width = 255
End
End
Begin VB.PictureBox Pic_Box1
Appearance = 0 'Flat
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 3195
Left = 90
ScaleHeight = 3165
ScaleWidth = 3165
TabIndex = 1
Top = 75
Width = 3195
Begin VB.Label Lab_Pixel
BackColor = &H80000008&
Height = 255
Index = 0
Left = 0
TabIndex = 2
Top = 0
Width = 240
End
End
Begin VB.CommandButton Cmd_Reset
Caption = "重置绘图区"
Height = 495
Left = 2385
TabIndex = 0
Top = 3345
Width = 1350
End
Begin VB.Label Label1
Caption = "当前颜色"
Height = 180
Left = 1200
TabIndex = 6
Top = 3502
Width = 720
End
Begin VB.Label Lab_ColorNow
BackColor = &H00FF0000&
Height = 300
Left = 1995
TabIndex = 5
Top = 3435
Width = 300
End
End
Attribute VB_Name = "frm_PixelPic"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim ColorNow As Long '当前色
Attribute ColorNow.VB_VarHelpID = -1

Private Sub Cmd_Reset_Click()
For i = 0 To 99
Lab_Pixel(i).BackColor = 0
Next i
End Sub

Private Sub Form_Load()
Dim i As Integer
On Error Resume Next '告警时执行下一条语句,主要是跳过load lab_pixel(0)的错误

Randomize '初始化随机数种子

For i = 0 To 99
Load Lab_Pixel(i) '加载控件
With Lab_Pixel(i)
.Container = Pic_Box1 '设定容器为pic_box1
.Width = 300 '宽,VB默认以缇为单位,1像素=15缇
.Height = 300 '高
.Left = 15 + (i Mod 10) * 315 '算位置坐标,此坐标相对于容器pic_box1
.Top = 15 + Int(i / 10) * 315
.Caption = "" '清空
.BackColor = 0 '黑色背景
.Visible = True '显示控件
End With
Next i

For i = 0 To 9
Load Lab_Color(i)
With Lab_Color(i)
.Container = Pic_Box2
.Width = 300
.Height = 300
.Left = 15
.Top = 15 + i * 315
.Caption = ""
.BackColor = RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd * 256)) '背景色设置为随机色
'rnd用于产生一个 0<= rnd <1 的浮点数,故 rnd*256 会产生0到255.9999...之间的浮点数,用int函数截取该浮点数的整数部分,得到 0-255 之间的整数
.Visible = True
End With
Next i

Pic_Box1.Width = 3195
Pic_Box1.Height = 3195
Pic_Box2.Width = 360
Pic_Box2.Height = 3195
Lab_ColorNow.BackColor = ColorNow
End Sub

Private Sub Lab_Color_Click(Index As Integer)
ColorNow = Lab_Color(Index).BackColor '取得颜色,颜色事实上是用一个长整数表示
Lab_ColorNow.BackColor = ColorNow '当前色显示为取得的颜色
End Sub

Private Sub Lab_Pixel_Click(Index As Integer)
Lab_Pixel(Index).BackColor = ColorNow '设置点击的lab控件颜色
End Sub

--------------------------------------------
用记事本另存为 frm_PixelPic.frm 即可

⑥ 如何批处理图片像素

PHOTOSHOP 是有这个功能的,首先你要建立一个动作.从顶部菜单栏打开-选择动作,打开动作面板
然后新建一个动作,点击动作面板底部第五个图片,新建动作名称随便输入,确定.然后开始录制,然后开始调整你的图片大小像素,选择图像-图像大小,确定好图像的高宽,然后确定-最后保存图片,这里录制的步骤也就完成了.点击那个动作面板中的底部的红色圆圈按钮旁边的四方按钮停止录制,这里动作就制作完毕.现在就可以开始批处理图片大小像素了.
然后选择文件-脚本-文件处理-设置好你要处理的文件(把你所有要处理的图片文件放在一个文件夹),选择你处理后的图片要放的文件位置.下面还需要你选择你刚刚制作的动作,确定.这样PS就能自动批处理你的图片大小像素了.

⑦ MATLAB求像素点个数 求完整代码。

之前回答过相关的问题(编号1432290413411891419),当时由于疏忽,代码存在一点小问题,在这里更正。

上一版本的问题在于,调色板虽然除去了黑白二色,图像数据A仍然是按原调色板索引的。
修改的几种思路:
1,按新的调色板,对图像数据进行重新映射,把黑白色映射为相近颜色;
2,在调色板中去掉黑白二色的同时,对统计结果也进行调整;
3,不修改调色板和数据,只在显示结果时剔除该两种颜色。
这里采用第2种做法。

其实深究起来,还涉及到一个问题:统计各颜色所占比例时,总数中是否包括黑色白色?
暂且按照忽略这两种颜色的方式考虑,这样各颜色的比例合计为100%,但总像素数量与图像不符(缺少黑色和白色的像素)。

参考代码:

%读入图像数据并转换为索引色
X=imread('1.png');
[A,map]=rgb2ind(X,16);

%统计各种颜色的像素数量
s=arrayfun(@(i)sum(A(:)==i),0:length(map)-1);

%过滤黑色和白色
inx=~any(map-repmat([000],length(map),1),2)|...
~any(map-repmat([111],length(map),1),2);
map(inx,:)=[];
s(inx)=[];

%在图中显示各像素的数量及占比
clf
holdon
fori=1:length(s)
plot(0.1,i,'s','markerface',map(i,:),'markeredge','k','markers',30)
text(0.4,i,sprintf('%-16i',s(i)),'fontsize',18)
text(0.8,i,sprintf('%4.1f%%',s(i)/sum(s)*100),'fontsize',18)
end
set(gcf,'color','w');
axisoff
xlim([01])

⑧ 照片处理程序代码

-C++。
图片处理代码:
#include
#include
#include
#include
#include
#include
#include
#include
该模块是完成BMP图像(彩色图像是24bit RGB各8bit)的像素获取,并存在文件名为xiang_su_.txt中
unsigned char *pBmpBuf;//读入图像数据的指针
int bmpWidth;//图像的宽
int bmpHeight;//图像的高
RGBQUAD *pColorTable;//颜色表指针
int biBitCount;//图像类型,每像素位数。//读图像的位图数据、宽、高、颜色表及每像素位数等数据进内存,存放在相应的全局变量中
bool readBmp(char *bmpName){FILE *fp=fopen(bmpName,"rb");//二进制读方式打开指定的图像文件
if(fp==0)
return 0;
//跳过位图文件头结BITMAPFILEHEADERfseek(fp, sizeof(BITMAPFILEHEADER),0);//定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中BITMAPINFOHEADER head;fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); //获取图像宽、高、每像素所占位数等信息bmpWidth = head.biWidth;bmpHeight = head.biHeight;biBitCount = head.biBitCount;//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)int lineByte=(bmpWidth * biBitCount/8+3)/4*4;//灰度图像有颜色表,且颜色表表项为256if(biBitCount==8)。

⑨ 按键精灵脚本如何写当像素变化时鼠标移到像素变化物体坐标上

哥们题不清楚
按键没有像素的概念
是颜色吗

VBSCall FindColorEx(0,0,1024,768,"FFFFFF",1,0.8,x,y)
If x>=0 and y>=0
MoveTo x y
Delay 50
LeftClick 1
EndIf
//条件结束

⑩ 迷你世界怎么用脚本生成像素

这个很简单,打开QQ,搜索QQ小程序:迷你世界像素画,点进去,获取基础脚本,再点像素画,可以自己上传图片呢!

热点内容
边的存储方法 发布:2025-05-16 17:33:16 浏览:925
海量服务器怎么拆 发布:2025-05-16 17:31:07 浏览:209
运行与编译的区别 发布:2025-05-16 17:25:02 浏览:823
c语言for中continue 发布:2025-05-16 17:20:14 浏览:647
ftp储存 发布:2025-05-16 17:04:08 浏览:504
家悦3010怎么看电脑配置 发布:2025-05-16 17:02:38 浏览:885
sqlin传参 发布:2025-05-16 17:02:37 浏览:889
python计算md5 发布:2025-05-16 17:02:32 浏览:427
看算法头疼 发布:2025-05-16 16:56:41 浏览:798
给定文件编译成dll文件 发布:2025-05-16 16:45:05 浏览:730