本篇文章給大家談?wù)勅鞘謾C(jī),以及三星gt-i8262d刷機(jī)包的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
文章詳情介紹:
三星Galaxy S23+評(píng)測:高顏值的全能旗艦
越來越多的手機(jī)品牌在發(fā)布新品時(shí)會(huì)推出中杯、大杯以及超大杯的產(chǎn)品,但因?yàn)榕渲蒙系牟町?,更多的焦點(diǎn)都聚焦在了超大杯的產(chǎn)品上。不過對(duì)于三星來說,雖然同樣也是三款產(chǎn)品,但每款產(chǎn)品的核心配置都是相同的,均配備了第二代驍龍8移動(dòng)平臺(tái)(for Galaxy),因此在性能方面有著近似的表現(xiàn),也為用戶帶來了更多的選擇。
如果你喜歡小屏手機(jī),那么可以選擇三星Galaxy S23;如果想要兼顧大屏和良好的手感,則可以選擇三星Galaxy S23+;如果是想要體驗(yàn)行業(yè)領(lǐng)先的影像系統(tǒng),那么三星Galaxy S23 Ultra是一個(gè)更好的選擇,所以三星Galaxy S23系列的每一款產(chǎn)品都有著不同的定位。此前我們也拿到了三星Galaxy S23+,下面我們就來看一下這款手機(jī)的表現(xiàn)到底如何。
外觀微調(diào) 顏值更高
在外觀設(shè)計(jì)方面,三星Galaxy S23+與上一代相比有了細(xì)微的變化,主要體現(xiàn)在攝像頭的設(shè)計(jì)上,調(diào)整之后的設(shè)計(jì)顯得更加的精致,在攝像頭周圍還有金屬環(huán)起到保護(hù)作用,防止鏡頭被刮花。
我們拿到的測試機(jī)配色為悠野綠,也是我覺得此次三星Galaxy S23系列中比較有驚喜的顏色,手機(jī)整體看上去是墨綠色,而在光線照射下又呈現(xiàn)出槍灰色,配合機(jī)身背部的磨砂玻璃,質(zhì)感是非常棒的,對(duì)于看慣了黑、白兩色的用戶來說,悠野綠是一個(gè)比較推薦的顏色。
淘寶三星Galaxy S23+依然是采用了直屏的設(shè)計(jì),6.6英寸的屏幕尺寸適中,配合7.6mm的機(jī)身厚度以及196g的重量,有著十分輕薄的手感。
手機(jī)的前后玻璃蓋板完全嵌入中框,中框的邊緣與玻璃處于同一平面,起到了更好的抗跌落效果,但也帶來了更為銳利的手感,喜歡圓潤手感的用戶可以佩戴保護(hù)殼使用。
手機(jī)的屏幕采用第二代動(dòng)態(tài)AMOLED,分辨率為2340×1080,支持120Hz自適應(yīng)刷新率,可以在48Hz與120Hz之間進(jìn)行動(dòng)態(tài)調(diào)整,在游戲模式下屏幕的觸控采樣率為240Hz,滿足游戲場景下的快速響應(yīng)需求。
三星Galaxy S23+的屏幕支持升級(jí)的Vision booster技術(shù),可以動(dòng)態(tài)調(diào)整色調(diào),改善高亮度環(huán)境下的屏幕顯示效果。此外,屏幕也支持增強(qiáng)舒適度的功能,可以在開啟護(hù)眼保護(hù)時(shí),增強(qiáng)舒適度功能可以調(diào)整平面的色調(diào)和對(duì)比度,讓用戶可以更舒適的觀看屏幕內(nèi)容。
三星Galaxy S23+的屏幕不僅顯示效果出色,而且也采用了很多用戶喜歡的直屏設(shè)計(jì),目前的直屏高端旗艦并不算多,三星Galaxy S23+的發(fā)布讓用戶又多了一個(gè)選擇。
三星Galaxy S23+配備了康寧Victus 2玻璃,在延續(xù)良好的耐刮擦性能外,提升了抗跌落的能力,特別是類似混凝土這類的粗糙表面的抗跌落能力,為手機(jī)提供更可靠的保護(hù)。此外,三星Galaxy S23+還支持IP68防護(hù),日常使用也無需擔(dān)心手機(jī)進(jìn)水的問題。
獨(dú)家配備第二代驍龍8移動(dòng)平臺(tái)(for Galaxy)
三星Galaxy S23+這次采用了第二代驍龍8移動(dòng)平臺(tái)(for Galaxy),主要體現(xiàn)在頻率的提升,包括CPU的主頻提升到3.36GHz,GPU的頻率提升到719MHz,因此在性能方面也帶來了更為出色的表現(xiàn)。
針對(duì)安兔兔的跑分測試,三星Galaxy S23+的成績達(dá)到了125萬分,也體現(xiàn)了手機(jī)的旗艦定位。
我們也對(duì)三星Galaxy S23+的游戲性能進(jìn)行測試,運(yùn)行《王者榮耀》、《和平精英》以及《原神》三款游戲。
《王者榮耀》中,三星Galaxy S23+的幀率設(shè)置可以設(shè)定為高,也就是60幀,其實(shí)從性能上來看,手機(jī)支持極高(120幀)也是沒有問題的,隨著手機(jī)的上市,未來《王者榮耀》也將會(huì)逐漸支持更高幀率。
三星Galaxy S23+運(yùn)行《和平精英》可以選擇極限幀率,我們?cè)诟咔迥J较逻M(jìn)行測試。
經(jīng)過Perfdog測試,三星Galaxy S23+的平均幀率為59.9FPS,游戲過程中幀率穩(wěn)定,沒有明顯的波動(dòng),非常的流暢。
針對(duì)《原神》的測試,我們選擇極高畫質(zhì),并且選擇60幀的幀率,經(jīng)過30分鐘的跑圖測試,平均幀率為59.2FPS,游戲過程中也沒有出現(xiàn)明顯的降幀情況,流暢度還是有保障的。
在《原神》測試結(jié)束后,手機(jī)的機(jī)身正面溫度42.8℃為,背面溫度為40.1℃。手機(jī)對(duì)于溫度的控制還是比較不錯(cuò)的。
高清三攝應(yīng)對(duì)全場景拍攝
三星Galaxy S23+搭載了后置三攝鏡頭,分別是5000萬像素廣角鏡頭、1200萬像素超廣角鏡頭以及1000萬像素的長焦鏡頭,支持3倍光學(xué)變焦。此次得益于算力的提升,三星Galaxy S23+的Expert RAW支持5000萬像素的多重曝光拍攝,因此對(duì)于專業(yè)用戶來說,在拍攝RAW照片時(shí)可以選擇更高的照片像素。
三星Galaxy S23+延續(xù)了三星一貫的高品質(zhì)成像優(yōu)勢,不僅可以呈現(xiàn)更精準(zhǔn)的色彩,而且不同鏡頭之間的白平衡也沒有明顯的差異,因此在拍照時(shí)可以確保不同鏡頭切換所呈現(xiàn)的畫面一致。
此外,三星Galaxy S23+進(jìn)一步優(yōu)化了手機(jī)在夜拍方面的表現(xiàn),通過多幀合成技術(shù)改善夜景的畫面亮度,隨手拍攝的夜景照片在成像效果上也是較為出色的。
在拍攝夜景時(shí),三星Galaxy S23+的三顆鏡頭也具備著較為穩(wěn)定的表現(xiàn),這可以讓我們?cè)谂臄z時(shí)有更多的視角選擇。
三星Galaxy S23+支持圖片中的文字提取功能,手機(jī)支持自動(dòng)識(shí)別圖片中的文字信息,并且支持復(fù)制粘貼功能,帶來便捷的使用體驗(yàn)。
總結(jié)
三星Galaxy S23+延續(xù)了以往優(yōu)秀的屏幕表現(xiàn),并且針對(duì)影像部分進(jìn)行了加強(qiáng),具備了全場景的拍攝能力,通過改善手機(jī)夜拍的成像效果,讓隨手拍出好照片變得更加容易,不受時(shí)間地點(diǎn)的限制。
三星Galaxy S23+有著旗艦級(jí)別的硬件配置,為手機(jī)提供了足夠的性能支撐。此外手機(jī)搭載了基于Android 13系統(tǒng)的One UI 5.1,在體驗(yàn)層面也大有改觀,在流暢度以及功耗層面都有更好的優(yōu)化,從而為用戶帶來更為出色的使用體驗(yàn)。
Python開發(fā)GUI工具介紹,實(shí)戰(zhàn):將圖片轉(zhuǎn)化為素描畫
python開發(fā)GUI
tkinter
也許有些人不知道這個(gè)模塊,但如果你安裝python后,使用過自帶的IDLE,那么你就應(yīng)該了解它。tkinter作為python自帶的GUI模塊,IDLE便是通過該模塊開發(fā)的,也是我比較喜歡的一個(gè)模塊
easygui
第一次了解這個(gè)模塊,還是在小甲魚的《零基礎(chǔ)入門學(xué)習(xí)python》時(shí)學(xué)習(xí)的,該模塊對(duì)Tkinter進(jìn)行了二次封裝,是的GUI操作變得更為簡單,但同時(shí)也局限于表層的使用,
wxpython
wxpython是一個(gè)Python包裝wxWidgets(這是用 C++ 編寫),一個(gè)流行的跨平臺(tái)GUI工具包。在wxPython API主要模塊包括一個(gè)核心模塊。
wxpython的優(yōu)勢在速運(yùn)行速度較快,但編寫起來較為復(fù)雜,而且界面美化效果較差…
PYQT5
Qt是一套跨平臺(tái)的C++庫,不論是C、Java還是Python,都可以通過它來實(shí)現(xiàn)GUI界面的開發(fā)。PyQt5是Qt v5的一套全面的Python綁定。它實(shí)現(xiàn)為超過35個(gè)擴(kuò)展模塊,并使Python能夠在所有支持的平臺(tái)(包括iOS和Android)上用作C ++的替代應(yīng)用程序開發(fā)語言。
如果你對(duì)GUI編程非常感謝興趣,可以用心學(xué)學(xué)這個(gè)模塊,但如果你只是想快速的實(shí)現(xiàn)一些GUI的功能,我更推薦大家學(xué)習(xí)tkinter模塊,為什么?
tkinter作為python默認(rèn)自帶的模塊庫,無需單獨(dú)安裝
tkinter相比于wxpython與pyqt在針對(duì)小工具的編程方面,更為高效
tkinter在網(wǎng)上存在大量的快速入門教程
tkinter實(shí)戰(zhàn)避坑指南
tktiner添加圖片
大家看到,tktiner中附帶了一個(gè)我的微信二維碼,這里只是為了演示tkinter添加圖片,沒有絲毫推廣的味道,哈哈…這里要注意下,tktiner在添加圖片時(shí),PhotoImage(file=’tmp.gif’)要求圖片必須是.gif結(jié)尾的圖片,否則就會(huì)報(bào)錯(cuò):
_tkinter.TclError: couldn’t recognize data in image file
關(guān)于base64
大家看到我沒有加載圖片,而是通過base64提前轉(zhuǎn)碼好二進(jìn)制文件后,再進(jìn)行導(dǎo)入,這樣我們打包的exe在使用時(shí),就無需附帶一個(gè)圖片文件了!
import base64 with open('demo.gif','rb') as f: data = f.read() img = base64.b64encode(data) 完整代碼
from tkinter.messagebox import * from tkinter.filedialog import * from tkinter import * import base64 from PIL import Image, ImageFilter, ImageOps import os ''' 更多Python學(xué)習(xí)資料以及源碼教程資料,可以加群821460695 免費(fèi)獲取 ''' img_bs64 = b'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' def dodge(a, b, alpha): return min(int(a * 255 / (256 - b * alpha)), 255) def draw(dir_info, blur=25, alpha=1.0): base_dir = os.path.dirname(os.path.abspath(__file__)) save_file_name = os.path.join(base_dir, 'final.png') img = Image.open(dir_info) img1 = img.convert('L') # 圖片轉(zhuǎn)換灰色 img2 = img1.copy() img2 = ImageOps.invert(img2) for i in range(blur): img2 = img2.filter(ImageFilter.BLUR) width, height = img1.size for x in range(width): for y in range(height): a = img1.getpixel((x, y)) b = img2.getpixel((x, y)) img1.putpixel((x, y), dodge(a, b, alpha)) img1.save(save_file_name) img1.show() class LoginPage(object): def __init__(self, master=None): self.root = master self.root.geometry('%dx%d' % (420, 240)) self.page = Frame(self.root) self.Dir = StringVar() self.Port = StringVar() self.path = StringVar() self.dir_info = StringVar() self.create_page() def create_page(self): self.page.grid() with open('tmp.gif', 'wb+') as f: f.write(base64.b64decode(img_bs64)) self.photo = PhotoImage(file='tmp.gif') os.remove('tmp.gif') Label(self.page, text=''' 公眾號(hào): 清風(fēng)Python 作者 : 王翔 時(shí)間 :2019-08-06 工具 :Python 3.7.3 Tkinter 詳情 : 將圖片轉(zhuǎn)化為素描畫''', justify=LEFT).grid(row=0, column=0, columnspan=2, rowspan=1, stick=NW) Label(self.page, text="圖片路徑").grid(row=3, column=0, sticky=W, pady=5) self.dir_info = Entry(self.page, textvariable=self.path) self.dir_info.grid(row=3, column=1, columnspan=1, padx=20) Button(self.root, text="選擇路徑", command=lambda: self.select_path()).grid(row=0, column=0, sticky=S, padx=20, pady=5) Label(self.page, image=self.photo).grid(row=0, column=2) Button(self.page, text='轉(zhuǎn)換', command=self.login_check, width=10).grid(row=3, column=2, padx=10, pady=5) def select_path(self): path_ = askopenfilename(filetypes=[("file", "*.*")]) self.path.set(path_) def login_check(self): img_dir = self.dir_info.get() if img_dir == "": showinfo(title='錯(cuò)誤', massage='路徑錯(cuò)誤') else: draw(img_dir) root = Tk() root.title('素描畫轉(zhuǎn)化工具') LoginPage(root) root.mainloop()