第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在python中更改圖像中每個(gè)像素的值?

如何在python中更改圖像中每個(gè)像素的值?

FFIVE 2024-01-24 20:36:23
為了制作圖像過濾器,軟件會(huì)更改圖像中的像素值。當(dāng)我嘗試這段代碼時(shí)file = open("hey.jpg" , "rb") #opening filex = file.read() #reading from filefor i in range(len(x)):     print(x[i]) #cordinate of each pixelfile.close() #closing file我知道它正在通過輸出輸出每個(gè)像素的信息,因?yàn)闆]有值高于 255 或低于 0 。我的圖像的輸出示例:240 -> R255 -> G0   -> B我想更改每個(gè)值并將其保存在新圖像中我嘗試了以下代碼,但它不起作用file = open("hey.jpg" , "rb") #opening filex = file.read() #reading from filefile.close() #closing filefile = open("new.jpg" , "wb") #the new image for i in range(len(x)): #writing the new data with filter    if x[i] !=255: #pixels RGB cant be 256        file.write(bytes(x[i] + 1)) #bytes because when doig write(x[i]+1) it gives mes an error that a bytee object is required not int    else: #if it is 255 then do nothing        file.write(bytes(x[i]))file.close()#closing the new image無需閱讀此內(nèi)容:PS:Windows 10,Python3.8。我試圖讓一切變得簡(jiǎn)單。不起作用我的意思是沒有錯(cuò)誤,但操作系統(tǒng)無法解碼它并輸出圖像我不想使用任何第三方庫,如 PIL 。此代碼復(fù)制圖像的二進(jìn)制數(shù)據(jù)并成功創(chuàng)建一個(gè)新圖像。file = open("hey.jpg" , "rb") #opening filex = file.read() #reading from filefile.close() #closing filefile = open("new.jpg" , "wb") file.write(x)file.close()
查看完整描述

2 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

JPEG、PNG和大多數(shù)圖像文件格式不能這樣工作。它們的開頭包含元數(shù)據(jù),例如拍照日期、相機(jī)型號(hào)、GPS 坐標(biāo)、圖像高度、寬度和版權(quán)信息。之后,它們通常以高度優(yōu)化的壓縮格式存儲(chǔ)像素,因此在不先解壓縮數(shù)據(jù)的情況下無法更改像素。然后,您可以編輯它們并將它們寫回,使用新的標(biāo)頭并重新壓縮。因此,我們強(qiáng)烈建議您使用圖書館。

如果您真的不想使用 Python 庫,您可以在終端中使用ImageMagick(命令行工具)將圖像轉(zhuǎn)換為純 RGB 像素。因此,如果您的圖像被稱為input.jpg,您可以在終端中運(yùn)行它:

magick?input.jpg?-depth?8?RGB:pixels.dat

然后,如果您的圖像為 640x480 像素,則調(diào)用的文件的pixels.dat長(zhǎng)度將恰好為 640x480x3 字節(jié),沒有標(biāo)頭、元數(shù)據(jù)或壓縮。然后您可以完全按照您最初的設(shè)想進(jìn)行處理。之后,您可以使用以下命令將其恢復(fù)為 JPEG 或 PNG:

magick?-depth?8?-size?640x480?RGB:pixels.dat?output.jpg

請(qǐng)注意,在從 RGB 字節(jié)到 JPEG 的返回過程中,您必須如何告訴ImageMagick圖像的高度和寬度,因?yàn)槲募_頭沒有標(biāo)頭說明其高度和寬度。


查看完整回答
反對(duì) 回復(fù) 2024-01-24
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

我知道它正在通過輸出輸出每個(gè)像素的信息,因?yàn)闆]有值高于 255 或低于 0

此行為的原因與“每個(gè)像素的信息”不同 - 您只是訪問了文件的各個(gè)字節(jié),并且 1 字節(jié)值始終是從0x00(包括)到0xFF(包括)。如果您對(duì)其他類型的文件(例如文本文件)執(zhí)行此操作,結(jié)果將類似。

此代碼復(fù)制圖像的二進(jìn)制數(shù)據(jù)并成功創(chuàng)建一個(gè)新圖像。

您的代碼只是將文件內(nèi)容復(fù)制到另一個(gè)文件中。請(qǐng)注意,無論文件類型如何,它都會(huì)起作用。

我不想使用任何第三方庫,例如 PIL

按照您的意愿進(jìn)行操作,但請(qǐng)記住,如果沒有“任何第三方庫”,您必須從頭開始自己實(shí)現(xiàn)每種圖像格式的處理。


查看完整回答
反對(duì) 回復(fù) 2024-01-24
  • 2 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)