㈠ 問答:android P都更新了哪些功能
Android P的新功能特性集中在了UI、通知體驗、室內定位、圖像存儲幾個方面,解決了之前一直存在的痛點。例如WiFi RTT一定程度上彌補了蜂窩網路在室內環境下的定位問題,HEIC圖像格式則重點解決了存儲容量問題。同時,Android P也在通知豐富度及操作便捷性等功能方面有所增強和提升。
一、WiFi RTT功能——復雜地形精確導航
WiFi RTT功能是Android P新引入的一個功能,從原理上來說與蜂窩網路的定位原理一致,但這個功能極大的彌補了蜂窩網路在室內定位的短板,WiFi RTT將能夠在室內提供高精度的定位,這是蜂窩網路很難做到的。
WiFi RTT是全新的功能,在android.net.wifi包下增加了rtt包,用於存放WiFi RTT相關類和介面。
WiFi RTT的API以WifiRttManager為核心,藉助AP熱點或WiFi,利用RTT原理完成測距,通過三個以上的測距點就能夠准確地定位到設備所在位置。
WiFiRTTManager提供了測距介面,是一個非同步測距操作,根據官方文檔(https://developer.android.com/reference/android/net/wifi/rtt/WifiRttManager.html)說明,其測距介面如下:
void startRanging(RangingRequest request, RangingResultCallback callback, Handler handler);
註:SDK Platforms Android P Preview Revision 1的相關介面定義與此不同,但實際的官方鏡像中介面與此一致,開發者需要更新最新的Android P Preview Revision 2,此版本中Google已經修正該介面。
介面中,RangingRequest通過RangingRequest.Builder構建,RangingRequest.Builder構建出RangingRequest所需要的參數可以通過WiFiManager等系統服務獲取到相關的內容,如List<ScanResult> scanResults = wifiManager.getScanResults();
以下提供一個簡單的測試Demo,以供參考:
private WifiRttManager wifiRttManager;
private WifiManager wifiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
// ... ...
if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_RTT)) {
Object service = this.getApplicationContext().getSystemService(Context.WIFI_RTT_RANGING_SERVICE);
if(service instanceof WifiRttManager) {
wifiRttManager= (WifiRttManager) service;
Log.i(TAG, "Get WifiRttManager Succ.");
}
wifiManager = (WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
IntentFilter wifiFileter = new IntentFilter();
wifiFileter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
wifiFileter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
wifiFileter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(new WifiChangeReceiver(), wifiFileter);
}
// ... ...
}
private void startScanAPs() {
wifiManager.setWifiEnabled(true);
wifiManager.startScan();
}
class WifiChangeReceiver extends BroadcastReceiver {
@RequiresApi(api = 28)
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
List<ScanResult> scanResults = wifiManager.getScanResults();
Log.i(TAG, "Wifi Scan size:" + scanResults.size());
for(ScanResult scanResult: scanResults) {
Log.i(TAG, scanResult.toString());
RangingRequest.Builder builder = new RangingRequest.Builder();
builder.addAccessPoint(scanResult);
wifiRttManager.startRanging(builder.build(), new RangingResultCallback() {
@SuppressLint("Override")
@Override
public void onRangingFailure(int i) {
// TODO
}
@SuppressLint("Override")
@Override
public void onRangingResults(List<RangingResult> list) {
// TODO get result from list
for(RangingResult result : list) {
Log.i(TAG, result.toString());
}
}
}, new Handler());
}
}
}
}
使用WiFi RTT時,需要在AndroidManifest.xml中增加如下聲明:
<uses-feature android:name="android.hardware.wifi.rtt" />
通過上面的簡單代碼,就能夠實現WiFi RTT的功能。
WiFi RTT功能適用於復雜地形的大型室內外場所,如商場、娛樂場所、大型休閑、游樂場等等,提供場所內的局部區域精確化導航等功能。相信在很快的時間內,就能夠在各大地圖應用內體驗到這項便利功能,對於路痴、地圖盲的夥伴們將是極大的福音。
二、顯示剪切——支持劉海屏
隨著iPhone X的推出,「劉海屏」達到了空前的高潮。Android P里提供了對異形屏幕的UI適配兼容方案,通過DisplayCutout類提供的相關介面,能夠獲取到屏幕中Cutout區域的信息。
藉助DisplayCutout,可以獲取到如下信息:
DisplayCutout displayCutout = view.getRootWindowInsets().getDisplayCutout();
if(displayCutout != null) {
Region bounds = displayCutout.getBounds();
Log.d(TAG, String.format("Bounds:%s", bounds.toString()));
int top = displayCutout.getSafeInsetTop();
int bottom = displayCutout.getSafeInsetBottom();
int left = displayCutout.getSafeInsetLeft();
int right = displayCutout.getSafeInsetRight();
Log.d(TAG, String.format("Cutout edge:[left:%d, top:%d,right:%d, bottom:%d]", left, top, right, bottom));
}
public Region getBounds()能夠獲取到Cutout區域的所有信息,Region就是Cutout區域。
public int getSafeInsetTop()
public int getSafeInsetBottom()
public int getSafeInsetLeft()
public int getSafeInsetRight()
以上四個介面,可以獲取到去除Cutout區域後的安全區域邊界值。
通過上述數據,開發者能夠精準的控制UI的繪制,避免將UI內容繪制到Cutout區域造成UI顯示異常。
Android機器里,劉海屏目前還是極為罕見的Google為了方便開發者調試,在Android P Preview鏡像中,特別提供了Cutout的支持,具體打開方式可以參考Google提供的特性說明文檔cutout小節內容。
cutout小節:https://developer.android.com/preview/features.html#cutout
如圖所示,筆者使用手頭的Pixel 2 XL體驗了Android P的Cutout設置。
三、通知優化——操作更多樣,內容更豐富
Android P在通知內容的豐富度和操作上做了優化。
最近的版本中,Android系統的通知管理方面一直優化升級,Android O提供了更細粒度的Channel功能,通知欄推送時需要指定NotificationChannel,用戶可以對通知的Channel選擇,只允許感興趣的Channel推送的通知顯示。通過通道設置、免打擾優化等方式,極大增強了消息體驗。
增強消息體驗
Android P繼續改進和增強消息通知[v1]。早在Android 7.0時,就提供了在通知中直接應答和輸入,Android P對這一功能做了更多的增強。
Android P的通知中支持圖像內容,可以通過setData()方法,給出消息的圖像內容,在通知上展示給用戶。
Android P同樣簡化了通知的配置形式。Android P中增加了Notification.Person類,用於區分同一個對話的參與者信息,如參與者的頭像、URI等。根據官方說明,Android P中,通知消息的其他一些API,也使用Person替代之前的CharSequence。
簡單的體驗下新的API的開發:
NotificationChannel channel = new NotificationChannel("WtTestChannel",
"WtTestChannel", NotificationManager.IMPORTANCE_DEFAULT);
channel.enableLights(true); // luncher icon right corner's point
channel.setLightColor(Color.RED); // read point
channel.setShowBadge(true); // whether show this channel notification on long press icon
Notification.Builder builder =
new Notification.Builder(MainActivity.this,
"WtTestChannel");
Notification.Person p = new Notification.Person();
p.setName("WeTest");
p.setUri("http://cdn.wetest.qq.com/" +
"ui/1.2.0/pc/static/image/newLogo-16042.png");
Notification.MessagingStyle messageStyle = new Notification.MessagingStyle(p);
Notification.MessagingStyle.Message message =
new Notification.MessagingStyle.Message("WeTestMessage", 2000, p);
//show image
Uri image = Uri.parse(
"http://cdn.wetest.qq.com/ui/1.2.0/pc/static/image/newLogo-16042.png");
message.setData("image/png", image);
messageStyle.addMessage(message);
builder.setStyle(messageStyle);
builder.setSmallIcon(R.mipmap.ic_launcher);
Notification notification = builder.build();
NotificationManager notifyManager =
(NotificationManager) getSystemService(
MainActivity.this.getApplicationContext().NOTIFICATION_SERVICE);
notifyManager.createNotificationChannel(channel);
notifyManager.notify("WeTest", 1, notification);
通道設置、廣播和免打擾優化
Android P中,重點做了內容豐富上的工作,同時也對Channel的設置方面做了一些簡化處理。
Android O版本里,首次推出了NotificationChannel,開發者需要配置相應的Channel,才能夠推送通知給用戶。用戶能夠更加細粒度[v1]的針對App的Channel選擇,而不是禁止App的所有通知內容。
而在Android P中,對通知的管理做了進一步的優化,包括可以屏蔽通道組、提供新的廣播類型和新的免打擾優先順序。
屏蔽通道組:用戶可以在通知設置中屏蔽App的整個通道組。開發者可以通過isBlocked()來判斷某個通道組是否被屏蔽了,並根據結果,不向已經被屏蔽的通道組發送任何通知。另外,開發者可以在App中使用新介面getNotificationChannelGroup()來查詢當前的通道組設置。
新的廣播類型:新廣播類型是針對通道和通道組的功能增加的「通道(組)屏蔽狀態變化」廣播。開發者App中可以對所擁有的通道(組)接收廣播,並根據具體廣播內容作出動作。開發者可以通過NotificationManager,查看廣播相關的具體信息。針對廣播的動作可以通過Broadcasts查看具體的方法和信息。
免打擾優先順序:NotificationManager.Policy增加了兩個新的優先順序常量,PRIORITY_CATEGORY_ALARMS(警告優先),PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER(媒體、系統和游戲聲音優先)。
四、支持多攝像機和相機共享
近一段時間,雙攝、多攝等機型紛紛面世。雙攝及多攝提供了單攝像頭所無法完成的能力,如無縫縮放、散景和立體視覺。Android P在這方面也提供了系統級的API支持。
Android P提供了系統API,支持從兩個或者多個物理攝像頭同步獲取數據流。此前OEM廠商提供的雙攝設備多是廠商自行定製系統實現,此時Android P推出了API,從系統層面上制定了API規范。
新的API提供了在不同相機之間切換邏輯數據流或混合數據流的調用能力。在捕捉延遲方面,提供新的會話參數,降低初始捕捉延遲。同時,提供相機共享能力,以解決在多種使用相機的場景下重復停止、開啟相機流。閃光燈方面,Android P增加基於顯示的閃光燈支持。光學防抖方面,Android P向開發者提供OIS時間戳,用於圖像穩定性優化以及其他特效使用。
此外,Android P還支持外部USB/UVC相機,可以使用更強大的外置攝像頭模組。
五、支持圖像媒體後期處理
Android P引入了新的ImageDecoder,該類除了支持對各種圖片格式的解碼、縮放、裁剪之外,其強大之處在於支持對解碼後的圖像做後期處理(post-process),使用該功能可以添加復雜的自定義特效,比如圓角,或是將圖片放在圓形像框中。編寫後期處理回調函數,你可以添加任何繪圖指令實現需要的效果。
此外,Android P原生支持GIF和WebP格式的動圖,新增了AnimatedImageDrawable類,並被新增的解碼器類ImageDecoder直接支持,用法跟矢量動畫類AnimatedVectorDrawable類似,實現方式也類似,通過新增渲染線程和工作線程,不需要在UI線程處理動圖更新,可以說是無痛使用,非常省心。
下面通過編寫代碼,顯示一張gif圖,並利用後期處理機制,在圖像中間繪制一個綠色的實心圓。
final ImageView image = (ImageView) findViewById(R.id.image);
File gifFile = new File("/data/local/tmp/test.gif");
if (!gifFile.exists()) {
Log.d(TAG, "gifFile is not exsited!");
return;
}
ImageDecoder.Source source = ImageDecoder.createSource(gifFile);
try {
d = ImageDecoder.decodeDrawable(source, new ImageDecoder.OnHeaderDecodedListener() {
@Override
public void onHeaderDecoded(ImageDecoder imageDecoder, final ImageDecoder.ImageInfo imageInfo, ImageDecoder.Source source) {
imageDecoder.setPostProcessor(new PostProcessor() {
@Override
public int onPostProcess(Canvas canvas) {
int w = imageInfo.getSize().getWidth();
int h = imageInfo.getSize().getHeight();
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.GREEN);
canvas.drawCircle(w/2, h/2, h/4, new Paint(paint));
return 0;
}
});
}
});
image.setVisibility(View.VISIBLE);
image.setImageDrawable(d);
} catch (IOException e){
Log.d(TAG, e.toString());
}
Button button = (Button) findViewById(R.id.buttonText);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (d != null && d instanceof AnimatedImageDrawable) {
AnimatedImageDrawable ad = (AnimatedImageDrawable) d;
if (ad.isRunning()) {
Log.d(TAG, "stop running");
ad.stop();
} else {
Log.d(TAG, "start running");
ad.start();
}
}
}
});
六、支持HDR VP9和HEIF
Android P內置了對HDR VP9和HEIF(heic)圖像編碼的支持。HEIF是蘋果在iOS11推出的一種高效壓縮格式,目前在IphoneX、Iphone 8、IPhone 8P上已經支持。該格式的壓縮率更高,但是編碼該格式需要硬體的支持,解碼並不需要。最新的支持庫中的HeifWriter支持從YUV位元組緩沖區、Surface或是Bitmap類轉換為HEIF格式的靜態圖像。
Android P新引入了MediaPlayer2,支持DataSourceDesc創建的播放列表。
功能優化提升一覽
一、神經網路API 1.1
在前不久發布的Android 8.1 (API level 27)上,Google首次在Android平台上推出了神經網路API,這意味著我們的Android機器智能化水平又提高了一大步。而本次Android P,進一步豐富了神經網路的支持,不僅對之前的相關API進行了優化,並且提供了9個新的操作,為具體的數據操作方面提供了更深入的支持。
二、改進表單自動填充
Android 8.0(API等級26)中引入了自動填充框架,這使得在應用中填寫表單變得更加容易。 Android P引入了自動填充服務並實現了多項改進,得以在填寫表單時進一步增強用戶體驗。
三、安全增強
Android P引入了許多新的安全功能,包括統一的指紋驗證對話框和敏感交易的高確信度的用戶確認。應用程序內的指紋認證UI也將會更加一致。
統一的指紋驗證對話框
如果第三方APP想要使用指紋,Android系統框架為應用提供了指紋認證對話框,該功能可以提供統一的外觀和使用體驗,用戶使用起來更放心。如果您的程序還在使用FingerprintManager,現在改用FingerprintDialog替代吧,系統來提供對話框顯示。對了,在使用FingerprintDialog之前,別忘了調用hasSystemFeature()方法檢查手機設備是否支持指紋。
敏感交易的高確信度的用戶確認
Android P系統提供了受保護的確認API,藉助這組全新的API,應用可以使用ConfirmationDialog對話框向用戶提示,請求用戶批准一條簡短的聲明, 該聲明允許應用提醒用戶,即將完成一筆敏感交易,例如支付。
如果用戶接受聲明,應用將會收到一條key-hash的消息認證碼(HMAC),該簽名由TEE產生,以保護用於輸入和認證對話框的顯示。該簽名表示用於已經看到了聲明並同意了。
硬體安全模塊
Android P還提供了StrongBox Keymaster(強力沙盒秘鑰大師),一個存儲在硬體安全模塊的具體實現。在這個硬體安全模塊中有自己的CPU、安全存儲空間,真隨機數生成器,以及額外的機制抵禦應用被篡改或是未授權應用的惡意載入。當檢查存儲在StrongBox Keymaster中的密鑰時,系統通過可信執行環境(TEE)確認密鑰的完整性。為了降低能耗,StrongBox支持了一組演算法和不同長度的秘鑰:
●RSA 2048
●AES 128 and 256
●ECDSA P-256
●HMAC-SHA256 (支持8位元組到64位元組任意秘鑰長度)
●Triple DES 168
需要說明的是,這個機制需要硬體支持。
安全秘鑰導入KeyStore
使用新的ASN.1編碼的秘鑰格式添加導入秘鑰到Keystore,Android P提供了額外的密碼解密安全能力。之後KeyMaster就可以解密KeyStore存儲的秘鑰,這種工作方式使得秘鑰明文永遠不會出現在設備內存中。這項特性要求設備支持Keymaster 4。
四、支持客戶端側Android備份加密
Android P支持使用客戶端密鑰對Android備份進行加密。 這項隱私措施,需要設備的PIN、圖案密碼或標准密碼才能從用戶設備備份的數據中恢復數據。
五、Accessibility優化
為了使App使用更便捷,Android在多個方面為開發者提供了易用性的優化。
1、Navigation semantics
Android P在App的場景切換和操作上為開發者提供了很多的優化點。
2、Accessibility pane titles
Android P中對Section提供了新的機制,被稱為accessibility pane titles, Accessibility services能夠接收這些標題的變化,使得能夠對一些變化提供更加細粒度的信息。
指定Section的標題,可以通過android:accessibilityPaneTitle新屬性來設置,同樣運行時可以通過setAccessibilityPaneTitle()來設置標題。
3、頂部欄導航
Android P提供了新的頂部欄導航機制,通過設置View實例的android:accessibilityHeading屬性為true,來顯示邏輯標題。通過這些標題,用戶就可以從一個標題導航到下一個標題,
4、群組導航和輸出
針對屏幕閱讀器,Android P對View提供了新的屬性android:screenReaderFocusable代替原有的android:focusable來做標記,來解決在一些場景下為了使屏幕閱讀器工作而設置View為可獲取焦點的操作。這時,屏幕閱讀器需要同時關注android:screenReaderFocusable和android:focusable設置為ture的View。
5、便捷操作
tooltips交互
Android P中,可以使用getTooltipText()去讀取tooltips的文本內容。使用新的ACTION_SHOW_TOOLTIP和ACTION_HIDE_TOOLTIP控制View顯示或者隱藏tooltips。
新全局交互
Android P在AccessibilityService類中提供了兩個全新的操作。開發者的Service可以通過GLOBAL_ACTION_LOCK_SCREEN幫助用戶鎖屏,通過GLOBAL_ACTION_TAKE_SCREENSHOT幫助用戶完成屏幕截圖。
窗體改變的一些細節
Android P優化了在App多窗體同步發生變化時的更新內容獲取。當出現TYPE_WINDOWS_CHANGED時,開發者可以通過getWindowChanges()API獲取窗體變化情況。
當多窗體發生改變時,每個窗體都會發出自己的事件,開發者可以通過getSource()獲取到事件窗體的根View。
如果你的App為View定義了accessibility pane titles,UI更新時你的Service就能夠識別到相應的改動。當出現TYPE_WINDOW_STATE_CHANGED事件時,使用新方法 getContentChangeTypes()返回的類型,就能夠獲取到當前窗體的變化情況。例如,現在就能夠通過上述的機制,檢測到一個[v1]窗格是否有了新標題,或者一個窗格的消失。
六、新的Rotation方案
旋轉屏幕,是一些游戲、視頻等場景必要的操作,但有一些場景,用戶旋轉屏幕並不是為了讓應用顯示從豎屏變成橫屏或反過來。為了避免這種誤操作,Android P提供了新的機制,開發者可以指定屏幕不隨重力感應旋轉,而是用戶通過一個單獨的按鈕自行控制屏幕顯示轉向。
㈡ 安卓手機如何製作GIF動態圖
安卓手機安裝GIF製作App就可以製作生成GIF動態圖。
我之前安裝使用過不少GIF手機製作應用,踩過很多坑,很多都是差強人意,要不是收費,要不就是生成的GIF動態圖效果奇差,模糊不清。
最後終於找到一款還算不錯的GIF製作App,雖然為個人開發,但是應用完全免費,無水印、無內購、體積小而生成的GIF清晰流暢。
這款App名為「GIF大師」,個人認為確實可以稱得上良心之作。
功能還不少,幾乎能將你想到的生成GIF的方式都實現了:
在製作的過程中還可以對你的素材進行時長、速度、裁剪、加文本這些編輯。
編輯滿意之後就可以保存生成GIF了。還可以設置生成的參數,如GIF質量、解析度和流暢度。
等待生成完成後你就可以輕松將你製作好的GIF表情包、 搞笑 GIF、影視精彩片段、 體育 精彩瞬間等分享給他人了。
最後看一下我使用視頻轉GIF的效果圖。
這個很簡單下載一個GIF APP解決問題,根據你的需求還可以調整動畫時間,但是一般傳論壇或者網頁一般限制在5M左右。
我還在學習中
我一般用美圖,或者是萬興神剪手!!
這款GIF助手也不錯,無廣告綠色版,可以圖片合成GIF、視頻轉GIF、還可以直接拍攝GIF、錄屏直接轉成GIF,除此之外,還有快速編輯GIF、GIF轉視頻、GIF分解壓縮倒放剪輯拼接等功能。
安卓手機想要製作GIF格式的動態圖也不是不可以。需要用第三方軟體。
上手比較快,易操作的就是剪影。一鍵生成,很方便。
第一步,打開剪影軟體。
第二步:在主界面選擇GIF製作。
第三步:導入素材。
第四步:選擇輸出質量。
第五步:等待轉換完成。
第六步:給製作的GIF取一個你心怡的名字。就大功告成了。
用軟體啊,你可以試試看用360旗下的快剪輯,這個軟體功能很強大的
製作動態的軟體很多的,gif豆豆
㈢ 求安卓機比較好用的視頻編輯軟體
1、AndroVid
《AndroVid Pro》是一個非常好用的視頻編輯器,擁有許多實用的功能,如修剪、分割以及抓取視頻幀,對N多音頻和視頻格式轉換等,並且可以分享您編輯過的視頻。
10、威力酷剪
《威力酷剪ActionDirector Video Editor》是專為運動攝影玩家量身打造的視頻創作軟體。內建簡易上手的操作介面和清楚操作說明,即使是創作新手也能輕松添加特效或背景音樂,快速打造驚艷作品,並直接上傳 !在移動裝置上剪輯4K超清運動視頻就跟平常你在電腦上,用威力導演視頻一樣快捷簡單。
還有不明白的可以追問我,
純手打,望採納(* ̄︶ ̄)
㈣ 安卓所能支持的圖片格式有哪些盡量全一點好么 謝謝!
一、BMP格式
BMP是英文Bitmap(點陣圖)的簡寫,它是Windows操作系統中的標准圖像文件格式,能夠被多種Windows應用程序所支持。隨著Windows操作系統的流行與豐富的Windows應用程序的開發,BMP點陣圖格式理所當然地被廣泛應用。這種格式的特點是包含的圖像信息較豐富,幾乎不進行壓縮,但由此導致了它與生俱生來的缺點--佔用磁碟空間過大。所以,目前BMP在單機上比較流行。
二、GIF格式
GIF是英文Graphics Interchange Format(圖形交換格式)的縮寫。顧名思義,這種格式是用來交換圖片的。事實上也是如此,上世紀80年代,美國一家著名的在線信息服務機構CompuServe針對當時網路傳輸帶寬的限制,開發出了這種GIF圖像格式。
GIF格式的特點是壓縮比高,磁碟空間佔用較少,所以這種圖像格式迅速得到了廣泛的應用。 最初的GIF只是簡單地用來存儲單幅靜止圖像(稱為GIF87a),後來隨著技術發展,可以同時存儲若干幅靜止圖象進而形成連續的動畫,使之成為當時支持2D動畫為數不多的格式之一(稱為GIF89a),而在GIF89a圖像中可指定透明區域,使圖像具有非同一般的顯示效果,這更使GIF風光十足。目前Internet上大量採用的彩色動畫文件多為這種格式的文件,也稱為GIF89a格式文件。
此外,考慮到網路傳輸中的實際情況,GIF圖像格式還增加了漸顯方式,也就是說,在圖像傳輸過程中,用戶可以先看到圖像的大致輪廓,然後隨著傳輸過程的繼續而逐步看清圖像中的細節部分,從而適應了用戶的"從朦朧到清楚"的觀賞心理。目前Internet上大量採用的彩色動畫文件多為這種格式的文件。
但GIF有個小小的缺點,即不能存儲超過256色的圖像。盡管如此,這種格式仍在網路上大行其道應用,這和GIF圖像文件短小、下載速度快、可用許多具有同樣大小的圖像文件組成動畫等優勢是分不開的。
三、JPEG格式
JPEG也是常見的一種圖像格式,它由聯合照片專家組(Joint Photographic Experts Group)開發並以命名為"ISO 10918-1",JPEG僅僅是一種俗稱而已。JPEG文件的擴展名為.jpg或.jpeg,其壓縮技術十分先進,它用有損壓縮方式去除冗餘的圖像和彩色數據,獲取得極高的壓縮率的同時能展現十分豐富生動的圖像,換句話說,就是可以用最少的磁碟空間得到較好的圖像質量。
同時JPEG還是一種很靈活的格式,具有調節圖像質量的功能,允許你用不同的壓縮比例對這種文件壓縮,比如我們最高可以把1.37MB的BMP點陣圖文件壓縮至20.3KB。當然我們完全可以在圖像質量和文件尺寸之間找到平衡點。
由於JPEG優異的品質和傑出的表現,它的應用也非常廣泛,特別是在網路和光碟讀物上,肯定都能找到它的影子。目前各類瀏覽器均支持JPEG這種圖像格式,因為JPEG格式的文件尺寸較小,下載速度快,使得Web頁有可能以較短的下載時間提供大量美觀的圖像,JPEG同時也就順理成章地成為網路上最受歡迎的圖像格式。
四、JPEG2000格式
JPEG 2000同樣是由JPEG 組織負責制定的,它有一個正式名稱叫做"ISO 15444",與JPEG相比,它具備更高壓縮率以及更多新功能的新一代靜態影像壓縮技術。
JPEG2000 作為JPEG的升級版,其壓縮率比JPEG高約 30%左右。與JPEG不同的是,JPEG2000 同時支持有損和無損壓縮,而 JPEG 只能支持有損壓縮。無損壓縮對保存一些重要圖片是十分有用的。JPEG2000的一個極其重要的特徵在於它能實現漸進傳輸,這一點與GIF的"漸顯"有異曲同工之妙,即先傳輸圖像的輪廓,然後逐步傳輸數據,不斷提高圖像質量,讓圖象由朦朧到清晰顯示,而不必是像現在的 JPEG 一樣,由上到下慢慢顯示。
此外,JPEG2000還支持所謂的"感興趣區域"特性,你可以任意指定影像上你感興趣區域的壓縮質量,還可以選擇指定的部份先解壓縮。 JPEG 2000 和 JPEG 相比優勢明顯,且向下兼容,因此取代傳統的JPEG格式指日可待。
JPEG2000可應用於傳統的JPEG市場,如掃描儀、數碼相機等,亦可應用於新興領域,如網路傳輸、無線通訊等等。
五、TIFF格式
TIFF(Tag Image File Format)是Mac中廣泛使用的圖像格式,它由Als和微軟聯合開發,最初是出於跨平台存儲掃描圖像的需要而設計的。它的特點是圖像格式復雜、存貯信息多。正因為它存儲的圖像細微層次的信息非常多,圖像的質量也得以提高,故而非常有利於原稿的復制。
該格式有壓縮和非壓縮二種形式,其中壓縮可採用LZW無損壓縮方案存儲。不過,由於TIFF格式結構較為復雜,兼容性較差,因此有時你的軟體可能不能正確識別TIFF文件(現在絕大部分軟體都已解決了這個問題)。目前在Mac和PC機上移植TIFF文件也十分便捷,因而TIFF現在也是微機上使用最廣泛的圖像文件格式之一。
六、PSD格式
這是著名的Adobe公司的圖像處理軟體Photoshop的專用格式Photoshop Document(PSD)。PSD其實是Photoshop進行平面設計的一張"草稿圖",它裡麵包含有各種圖層、通道、遮罩等多種設計的樣稿,以便於下次打開文件時可以修改上一次的設計。在Photoshop所支持的各種圖像格式中,PSD的存取速度比其它格式快很多,功能也很強大。由於Photoshop越來越被廣泛地應用,所以我們有理由相信,這種格式也會逐步流行起來。
七、PNG格式
PNG(Portable Network Graphics)是一種新興的網路圖像格式。在1994年底,由於Unysis公司宣布GIF擁有專利的壓縮方法,要求開發GIF軟體的作者須繳交一定費用,由此促使免費的png圖像格式的誕生。PNG一開始便結合GIF及JPG兩家之長,打算一舉取代這兩種格式。1996年10月1日由PNG向國際網路聯盟提出並得到推薦認可標准,並且大部分繪圖軟體和瀏覽器開始支持PNG圖像瀏覽,從此PNG圖像格式生機煥發。
PNG是目前保證最不失真的格式,它汲取了GIF和JPG二者的優點,存貯形式豐富,兼有GIF和JPG的色彩模式;它的另一個特點能把圖像文件壓縮到極限以利於網路傳輸,但又能保留所有與圖像品質有關的信息,因為PNG是採用無損壓縮方式來減少文件的大小,這一點與犧牲圖像品質以換取高壓縮率的JPG有所不同;它的第三個特點是顯示速度很快,只需下載1/64的圖像信息就可以顯示出低解析度的預覽圖像;第四,PNG同樣支持透明圖像的製作,透明圖像在製作網頁圖像的時候很有用,我們可以把圖象背景設為透明,用網頁本身的顏色信息來代替設為透明的色彩,這樣可讓圖像和網頁背景很和諧地融合在一起。
PNG的缺點是不支持動畫應用效果,如果在這方面能有所加強,簡直就可以完全替代GIF和JPEG了。Macromedia公司的Fireworks軟體的默認格式就是PNG。現在,越來越多的軟體開始支持這一格式,而且在網路上也越來截止流行。
八、SWF格式
利用Flash我們可以製作出一種後綴名為SWF(Shockwave Format)的動畫,這種格式的動畫圖像能夠用比較小的體積來表現豐富的多媒體形式。在圖像的傳輸方面,不必等到文件全部下載才能觀看,而是可以邊下載邊看,因此特別適合網路傳輸,特別是在傳輸速率不佳的情況下,也能取得較好的效果。事實也證明了這一點,SWF如今已被大量應用於WEB網頁進行多媒體演示與交互性設計。此外,SWF動畫是其於矢量技術製作的,因此不管將畫面放大多少倍,畫面不會因此而有任何損害。綜上,SWF格式作品以其高清晰度的畫質和小巧的體積,受到了越來越多網頁設計者的青睞,也越來越成為網頁動畫和網頁圖片設計製作的主流,目前已成為網上動畫的事實標准。
九、SVG格式
SVG可以算是目前最最火熱的圖像文件格式了,它的英文全稱為Scalable Vector Graphics,意思為可縮放的矢量圖形。它是基於XML(Extensible Markup Language),由World Wide Web Consortium(W3C)聯盟進行開發的。嚴格來說應該是一種開放標準的矢量圖形語言,可讓你設計激動人心的、高解析度的Web圖形頁面。用戶可以直接用代碼來描繪圖像,可以用任何文字處理工具打開SVG圖像,通過改變部分代碼來使圖像具有互交功能,並可以隨時插入到HTML中通過瀏覽器來觀看。
它提供了目前網路流行格式GIF和JPEG無法具備了優勢:可以任意放大圖形顯示,但絕不會以犧牲圖像質量為代價;字在SVG圖像中保留可編輯和可搜尋的狀態;平均來講,SVG文件比JPEG和GIF格式的文件要小很多,因而下載也很快。可以相信,SVG的開發將會為Web提供新的圖像標准。
其它非主流圖像格式:
1、PCX格式
PCX格式是ZSOFT公司在開發圖像處理軟體Paintbrush時開發的一種格式,這是一種經過壓縮的格式,佔用磁碟空間較少。由於該格式出現的時間較長,並且具有壓縮及全彩色的能力,所以現在仍比較流行。
2、DXF格式
DXF(Autodesk Drawing Exchange Format)是AutoCAD中的矢量文件格式,它以ASCII碼方式存儲文件,在表現圖形的大小方面十分精確。許多軟體都支持DXF格式的輸入與輸出。
3、WMF格式
WMF(Windows Metafile Format)是Windows中常見的一種圖元文件格式,屬於矢量文件格式。它具有文件短小、圖案造型化的特點,整個圖形常由各個獨立的組成部分拼接而成,其圖形往往較粗糙。
4、EMF格式
EMF(Enhanced Metafile)是微軟公司為了彌補使用WMF的不足而開發的一種Windows 32位擴展圖元文件格式,也屬於矢量文件格式,其目的是欲使圖元文件更加容易接受
5、LIC(FLI/FLC)格式
Flic格式由Autodesk公司研製而成,FLIC是FLC和FLI的統稱:FLI是最初的基於320×200解析度的動畫文件格式,而FLC則採用了更高效的數據壓縮技術,所以具有比FLI更高的壓縮比,其解析度也有了不少提高。
6、EPS格式
EPS(Encapsulated PostScript)是PC機用戶較少見的一種格式,而蘋果Mac機的用戶則用得較多。它是用PostScript語言描述的一種ASCII碼文件格式,主要用於排版、列印等輸出工作。
7、TGA格式
TGA(Tagged Graphics)文件是由美國Truevision公司為其顯示卡開發的一種圖像文件格式,已被國際上的圖形、圖像工業所接受。TGA的結構比較簡單,屬於一種圖形、圖像數據的通用格式,在多媒體領域有著很大影響,是計算機生成圖像向電視轉換的一種首選格式。