為什麼 Chrome 上複製 GIF 圖片只能複製一幀?
複製時候執行這裡的代碼writeImage
https://code.google.com/p/chromium/codesearch#chromium/src/webkit/glue/webclipboard_impl.ccq=ScopedClipboardWritersq=package:chromiumtype=csl=208if (!image.isNull()) {
const SkBitmap bitmap = image.getSkBitmap();
SkAutoLockPixelslocked(bitmap);
scw.WriteBitmapFromPixels(bitmap.getPixels(), image.size());
}
for (ObjectMap::const_iterator iter = objects.begin();
iter != objects.end(); ++iter) {
DispatchObject(static_cast&
}
https://code.google.com/p/chromium/codesearch#chromium/src/ui/base/clipboard/clipboard.ccsq=package:chromiumtype=csl=229
case CBF_BITMAP:
if (!ValidatePlainBitmap(params))
return;
WriteBitmap((params[0].front()), (params[1].front()));
break;
WriteBitmap就沒什麼好說的了
https://code.google.com/p/chromium/codesearch#chromium/src/ui/base/clipboard/clipboard_win.ccsq=package:chromiumtype=csl=293所以最後剪貼板里就有了點陣圖,但是因為chrome的文件有sanbox機制,無法直接把沙箱機制內的文件路徑設置到剪貼板的CF_HDROP里
其實QQ的判斷是如果剪貼板里有CF_BITMAP,還有CF_HDROP,就會根據CF_HDROP里的路徑來顯示動態gif,如果沒有CF_BITMAP,就當作傳輸文件。由於CF_BITMAP其實對QQ沒什麼用,估計是IDataObject介面里只是當作標誌位判斷下,所以其實創建一張1像素的Bitmap就可以了。(我的chrome插件的實現里就是這樣)
插件地址: copygif.zip | 新浪微盤- Chrome 23 之後在新標籤打開的圖片由於添加了[-webkit-user-select: none;] 無法選中圖片了。
- 安裝插件太煩。
- 那就直接拖動到聊天窗口吧,請看動畫演示:
http://img02.taobaocdn.com/tps/i2/T1NhmJXqJcXXbyGVMq-499-359.gif
安裝一個插件IETabhttps://chrome.google.com/webstore/detail/ie-tab/hehijbfgiekmjfkfjpbkbammjbdenadd複製的時候在GIF圖片上右鍵選擇「在新標籤頁中打開圖片」然後在新打開的標籤頁中啟用IETab由於IE內核的瀏覽器可以直接複製GIF圖片,這個時候就可以直接在chrome上用右鍵複製GIF圖片了此時(chrome23)是無法選中該圖片的,而直接在網頁中選取,如果GIF圖片的周圍比較清爽那還好,要是還有一些雜七雜八的文字或別的東西選中的時候就可能選中一些垃圾內容了,而且貌似還需要緩衝一段時間才能把GIF圖片完全複製下來
選取gif圖片,直接熱鍵ctrl+C即可複製全幀
2個最簡單的方法:
1.直接把GIF拖到QQ
2.先選中gif(跟複製文字時反色選中那樣),然後ctrl+c, 然後在目的地ctrl+v。
神特么的知乎,怎麼什麼都知道啊,然而我還是不明覺厲
要選中複製就沒問題了,如果只是單純右鍵複製就只能複製的靜態的。(選文字一樣的選中。)http://www.gifcool.com 你可以去這裡試試
推薦閱讀:
※為什麼時常會遇到 Chrome 死機的情況?
※Chrome 如何修改字體?
※為什麼 IE、Firefox、Chrome 等瀏覽器一直不默認支持滑鼠手勢?
※為什麼喜歡用 Google Chrome 瀏覽器?與 Internet Explorer 相比呢?
※為什麼谷歌要支持 Chromium 這個 Chrome 對應的開源項目?
TAG:GoogleChrome | GIF |