app-logo

IOS篇
  • logo格式
正常我們拿到ux給到的設(shè)計logo導(dǎo)出后當(dāng)我們存到ios本地的路徑之中,在上架之前,需要去除圖像中的alpha通道,否則會有上架限制,那么我們應(yīng)該怎么去除這個所謂的alpha通道呢?alpha通道又代表了什么呢?
image.png
1:在圖像處理中alpha到底是什么?
 Alpha通道是計算機圖形學(xué)中的術(shù)語,指的是特別的通道,意思是“非彩色”通道,主要是用來保存選區(qū)和編輯選區(qū)。
2:為什么用‘Alpha’代表透明度?
Alpha 沒有透明度的意思,不代表透明度。opacity 和 transparency 才和透明度有關(guān),前者是不透明度,后者是透明度。比如 css 中的「opacity: 0.5」就是設(shè)定元素有 50% 的不透明度。后來 Alvy Ray Smith 提出每個像素再增加一個 Alpha 通道,取值為0到1,用來儲存這個像素是否對圖片有「貢獻(xiàn)」,0代表透明、1代表不透明。也就是說,「Alpha 通道」儲存一個值,其外在表現(xiàn)是「透明度」,Alpha 和透明度沒啥關(guān)系。

為什么取名為 Alpha 通道,我覺得是因為這是除RGB以外「第一個通道」的意思,沒有別的更深刻的含義。

「Alpha 通道」是圖片內(nèi)在的一個屬性,用 css 或者其他外部方法設(shè)定透明度,并沒有改變圖片的 Alpha 通道的值。

阿爾法通道(α Channel或Alpha Channel)是指一張圖片的透明和半透明度。例如:一個使用每個像素16比特存儲的位圖,對于圖形中的每一個像素而言,可能以5個比特表示紅色,5個比特表示綠色,5個比特表示藍(lán)色,最后一個比特是阿爾法。在這種情況下,它要么表示透明要么不是,因為阿爾法比特只有0或1兩種不同表示的可能性。又如一個使用32個比特存儲的位圖,每8個比特表示紅綠藍(lán),和阿爾法通道。在這種情況下,就不光可以表示透明還是不透明,阿爾法通道還可以表示256級的半透明度,因為阿爾法通道有8個比特可以有256種不同的數(shù)據(jù)表示可能性。

RGBA是代表Red(紅色) Green(綠色) Blue(藍(lán)色)和 Alpha的色彩空間。雖然它有的時候被描述為一個顏色空間,但是它其實僅僅是RGB模型的附加了額外的信息。采用的顏色是RGB,可以屬于任何一種RGB顏色空間,但是Catmull和Smith在1971至1972年間提出了這個不可或缺的alpha數(shù)值,使得alpha渲染和alpha合成變得可能。提出者以alpha來命名是源于經(jīng)典的線性插值方程αA + (1-α)B所用的就是這個希臘字母。(線性插值是數(shù)學(xué)、計算機圖形學(xué)等領(lǐng)域廣泛使用的一種簡單插值方法)

真正讓圖片變透明的不是Alpha 實際是Alpha所代表的數(shù)值和其他數(shù)值做了一次運算 。比如你有一張圖片你想摳出圖片中間的一部分 在PS里你會建立一個蒙板 然后在蒙板里把不需要的地方填充成黑色 需要的留成白色 這個時候?qū)嶋H上是是做了一次乘法。用黑色所代表的數(shù)值0去乘以你所填充的地方 那么這個地方就變透明了
3.去除alpha通道

3.1:在mac下打開當(dāng)前圖片,command+shift+s copy一份圖片,然后在command+s保存的時候,將會彈出,我們?nèi)∠催x的Alpha選項保存即可得到去除alpha通道的logo圖片


image.png

3.2:當(dāng)然你如果有大批量替換的話可以在appstore中下載Alpha Channel Remover Pro,這個工具可以對icon進(jìn)行批量操作,外觀如下:


image.png

操作界面如下:
image.png

直接將本地需要操作的圖片拖拽至操作見面,然后點擊下方Remove Alpha channel按鈕即可,本地操作圖片即已去除Alpha通道

  • logo存放路徑


    image.png
Android篇
  • logo存放路徑


    image.png

在android中我們正常在android-studio3.0中run app執(zhí)行后會自動在res目錄下生成一個名叫mipmap-anydpi-v26的文件夾,文件夾中包含兩個xml文件

Android Studio 3 creates an adaptive icon for your app which is only available in SDK 26 and up. Launcher icons should be put into the mipmap folders.
If you look at your manifest, you can see that it references ic_launcher

android:icon="@mipmap/ic_launcher"

If you look in your mipmap folder, you see your normal 5 different launcher icons which will be used for anything lower than SDK 26. For SDK 26 and up, it uses the XML files from the anydpi-v26 folder to make use of adaptive icon.

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

Both answers above give pretty good summary of what mipmap-anydpi-v26 folder does but I feel why part is missing. So heres my 2 cents.

anydpi: These resources take precedence in any dpi. So even if you have mipmap-hdpi or mipmap-mdpi matching with current devices density, resource from mipmap-anydpi will always be picked up.

anydpi-v26: This is an additional filter over just anydpi. This says resources will always be picked up from anydpi-v26 regardless of devices density only if SDK/API level is 26 or higher(Oreo).

So you can have mipmap-anydpi-v26 or drawable-anydpi-v26. All resource folders will follow above logic.

Now that we know the answer of "why mipmap-anydpi-v26"? lets try to understand why "mipmap-anydpi-v26/ic_launcher.xml".

This is because ic_launcher.xml is used to describe adaptive icon for your app which is only available in SDK 26 and up as mentioned by other answers. Hope this helps.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容