高分求解,为何BMP图片无法打开?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分求解,为何BMP图片无法打开?相关的知识,希望对你有一定的参考价值。

有些图片(BMP)在软件中能正常显示,但是用看图软件却打不开,并且无预览,请问是什么原因,如何才能打开?
1、文件一定是图片,因为在软件中能显示。
2、看图软件是正常的,换了好几个都是打不开。
3、电脑是正常的。
...PHOTOSHOP 打不开
...ACDSee 打不开
...(强调)图片是没有问题的

分数追加到最高了,怎么还是没正确答案呢?

1.你打开那个windows自带的那个附件里的画图程序,这时才知道原来微软很了不起。
2.按文件下拉菜单,在按打开按扭。
3.打开下面的文件类型的下拉菜单,有如:位图文件(*BMP),图形转换格式(GIF)‘JPEG文件转换格式(JPG,JPEG),所有图片文件,所有文件
3.你按文件类型里的JPEG文件,打开他
4.最关键的一步了,你打开了JPEG图片以后,在按文件下拉菜单,按保存按扭,这时你一定会说有什么区别,有什么用啊,不要急,你在按下面的保存类型,你可以看见单色位图,16色位图,256位图,24位图,文件转换格式和JPEG文件转换格式。
5.最后,你只要按你要保存的是16位图啊,还是256,或者是16位图,在按保存就好了
这样原来的JPEG就转换成了BMP,同样BMP也可以这样转换成JPEG,很简单吧。连软件也不要用了
参考技术A 我有一个逆向打开的程序:
Private Sub Command1_Click()
On Error GoTo err1 '错误捕获

Dim Fname As String '。。。。。。打开一个文件
CommonDialog1.Action = 1
Fname = CommonDialog1.FileName
Open Fname For Binary As #1

Picture2.Cls

Dim bmpGeshi1 As Byte '。。。。。。判断是不是BMP图片
Dim bmpGeshi2 As Byte
Get #1, 1, bmpGeshi1
Get #1, 2, bmpGeshi2
If bmpGeshi1 = 66 And bmpGeshi2 = 77 Then
Picture2.Print "BMP"
Else
Picture2.Print "格式错误"
Close #1
Exit Sub
End If

Dim geShi As Byte '。。。。。。判断BMP图片位数
Get #1, &H1C + 1, geShi
If geShi = 24 Then
Picture2.Print "24位"
Else
Picture2.Print "文件是"; geShi; "位格式不支持,请打开24位格式的BMP"
Close #1
Exit Sub
End If

Dim Kuan As Long '。。。。。找到图片高、宽
Dim Gao As Long
Get #1, &H12 + 1, Kuan
Get #1, &H16 + 1, Gao
Picture2.Print "图像大小:宽"; Kuan; "高"; Gao
Picture1.Picture = LoadPicture() '清空图片框
Dim pos As Long '文件中点的指针
Dim Cha As Integer '行末尾填充的字节数
Cha = Abs((Kuan * 3) Mod 4 - 4) Mod 4
Picture2.Print "行末尾多余的字节"; Cha
pos = &H36 + 1
Dim ix2 As Integer '用于描出点的坐标
Dim iy2 As Integer '用于描出点的坐标
Dim yanseRed As Byte '存红色的值
Dim yanseGreen As Byte '存绿色的值
Dim yanseBlue As Byte '存蓝色的值

For iy2 = Gao - 1 To 0 Step -1 'y行 '。。。。。。描点
For ix2 = 0 To Kuan - 1 'x列
Get #1, pos, yanseBlue '得到颜色
Get #1, pos + 1, yanseGreen '得到颜色
Get #1, pos + 2, yanseRed '得到颜色
Picture1.PSet (ix2, iy2), RGB(yanseRed, yanseGreen, yanseBlue)
pos = pos + 3 '开始读下一个像素
Next ix2
pos = pos + Cha '描到了行末尾,则跳过不要的字节
Next iy2

Close #1 '正常时关闭文件
Exit Sub

err1: '错误处理
If Err = 32755 Then Exit Sub '打开文件对话框点"取消"时,发生32755错误错误
Picture2.Print "发生错误"
Close #1 '有错误时关闭文件
Exit Sub
End Sub

Private Sub Form_Load() '。。。。。。初始化
Picture1.ScaleMode = vbPixels '设定坐标为像素点
Picture1.AutoRedraw = False
Picture2.AutoRedraw = True
CommonDialog1.Filter = "文件bmp *.bmp |*.bmp| "
CommonDialog1.InitDir = App.Path
End Sub
参考技术B 文件中的部分数据丢失或出错,所以打不开,仅有预览部分正常,所以有预览图片。这种文件不一定能修复。 参考技术C 这位朋友,你试试看用PHOTOSHOP等软件打开一下,然后保存为JPEG或者GIF格式,看打不打得开,要是还打不开,就要重新装一下ACD之类的看图软件了.我原来也遇到过类似的问题,重装一遍ACDsee一般就可以了. 参考技术D 有缩略图.却无法打开?

文件损坏...用修复工具吧,但前提是原文件是你本地计算机上的,如果上网上下的图,那就没办法了...

自己搜索"EasyRecovery"去修复吧

时间会比较长...

HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP

技术图片

heic图片是无法使用windows图片产查看器或者其他图片查看工具打开,因为ISO系统在更新到ios11版本后,iphone手机拍摄的文件格式为HEIC格式图片, 这种格式占用体积小,对于非苹果用户很不友好,所以在win7和win10系统下需要使用 “HEIC图片转换精灵” 将heic图片转成普通图片,将heic转成无损jpg,png,bmp 等常见格式,解决不同系统无法打开heic图片的限制.

支持系统: win7/win10
软件获取地址:www.heicghost.com
1.第一步打开安装的软件,设置输出格式,点击下拉列表选取转换后的格式,默认jpg,支持输出jpg,png,bmp ,然后点击添加文件夹按钮,批量导入文件,导入成功后文件列表显示导入的文件.

技术图片

技术图片
2.第二步,列表中添加的文件默认是勾选的,只需一键点击开始转换,等待数秒钟,列表文件状态栏显示绿色的勾,代表文件转换完成,点击开目录,转换后jpg/pmg/bmp图片就在打开的目录下.

技术图片

 

以上是关于高分求解,为何BMP图片无法打开?的主要内容,如果未能解决你的问题,请参考以下文章

HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP

HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP

电脑出现 “windows照片查看器无法打开此图片,因为此文件可能已损坏、损毁过大” 求解

(高分请教)256色的定义是啥?

打不开BMP格式

高分悬赏,无法打开数据库fiie。系统错误-2147287035?