當前位置:首頁 » 安卓系統 » androidcanvas保存圖片

androidcanvas保存圖片

發布時間: 2022-09-04 02:26:02

『壹』 怎麼將canvas保存到手機相冊跪求方法,移動端的!

第一步我們可以在本地用記事本創建個html文件,用來寫我們的demo實例,如下圖cancas.html

2/7
第二步編輯該文件,開始寫html頁面代碼,如下圖所示

3/7
第三步在第二步的基礎上給頁面容器的畫布上用cancas花一個正方形的圖片,代碼如下圖所示

4/7
寫完之後保存,然後我們就可以在瀏覽器打開該網頁進行測試了,測試結果如下圖所示

5/7
我們點擊頁面上的「保存圖片」按鈕,會彈出另存為窗體,我們也可以對圖片進行重命名以及選擇保存路徑,點擊「下載並打開」按鈕,如下圖所示

6/7
打開後我們可以看到圖片已經下載到本地並打開了,具體效果如下圖所示

7/7
最後為大家展示下完整的頁面代碼,如下圖所示

『貳』 android繪圖之Canvas基礎(2)

Canvas畫布,用於繪制出各種形狀配合畫布的變幻操作可以繪制出很多復雜圖形,基本的繪制圖形分類。
提供的繪制函數:

上面四個函數都可以繪制canvas的背景,注意到PorterDuff.Mode變數,它只對兩個canvas繪制bitmap起作用,所以此處暫時不討論mode參數(沒有設置mode默認使用srcover porterff mode)。

Rect 和RectF都是提供一個矩形局域。
(1)精度不一樣,Rect是使用int類型作為數值,RectF是使用float類型作為數值。
(2)兩個類型提供的方法也不是完全一致。

**
rect:RectF對象,一個矩形區域。
rx:x方向上的圓角半徑。
ry:y方向上的圓角半徑。
paint:繪制時所使用的畫筆。**

**
cx 圓心x
cy 圓心y
radius半徑**

需要一個Path,代表路徑後面會講解。

繪制線的集合,參數中pts是點的集合,兩個值代表一個點,四個值代表一條線,互相之間不連接。
offset跳過的點,count跳過之後要繪制的點的總數,可以用於集合中部分點的繪制。

跳過部分節點:

沒有跳過點

RectF oval:生成弧的矩形,中心為弧的圓心
float startAngle:弧開始的角度,以X軸正方向為0度,順時針
float sweepAngle:弧持續的角度
boolean useCenter:是否有弧的兩邊,True,還兩邊,False,只有一條弧

在矩形框內畫一個橢圓,如果是個正方形會畫出一個圓。

canvas.drawPoint();
canvas.drawPoints();

**
只需要提供兩個點一個坐標就可以繪制點。
canvas.drawPoint(20,20,mPaint);
float[] points = {30,40,40,50,60,60};
canvas.drawPoints(points,mPaint);**

這幾種方法類似:
canvas.drawText("好好學習,天天向上",100,100,mPaint);

drawTextOnPath
沿著一條 Path 來繪制文字
text 為所需要繪制的文字
path 為文字的路徑
hOffset 文字相對於路徑的水平偏移量,用於調整文字的位置
vOffset 文字相對於路徑豎直偏移量,用於調整文字的位置
值得注意的是,在繪制 Path 的時候,應該在拐彎處使用圓角,這樣文字顯示時更舒服

大致講解,後面會重點講解。

Rect src
Rect dst
其中src和dst這兩個矩形區域是用來做什麼的?
Rect src:指定繪制圖片的區域
Rect dst或RectF dst:指定圖片在屏幕上的繪制(顯示)區域
首先指定圖片區域,然後指定繪制圖片的區域。

android繪圖之Paint(1)
android繪圖之Canvas基礎(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態修改漸變 GradientDrawable

『叄』 canvas中的圖片,怎麼保存到本地某路徑

不可能。
主要是出於安全考慮,假設你可以直接把文件保存到電腦上的任意位置而不經過用戶同意,那麼,你可以這么寫:
while(true){
保存文件到c盤();
}

『肆』 android如何從伺服器取多張圖片,在本地保存並顯示

//獲取connection conn = getURLConnection(url); is = conn.getInputStream(); //獲取Bitmap的引用 Bitmap bitmap = BitmapFactory.decodeStream(is) //獲取長度 int length = (int) conn.getContentLength(); if (length != -1) { byte[] imgData = new byte[length]; byte[] temp=new byte[512]; int readLen=0; int destPos=0; while((readLen=is.read(temp))>0){ System.array(temp, 0, imgData, destPos, readLen); destPos+=readLen; } bitmap=BitmapFactory.decodeByteArray(imgData, 0, imgData.length); }可能想得不是很完善,你可以參考參考。

『伍』 canvas如何將圖片保存出去

1、直接保存圖片。比如那種在線塗鴉的應用
有一個toDataURL()方法,可以得到base64編碼的圖片。
2、保存圖片的數據。比如那種可以在線畫流程圖的應用
這個需要自己設計了。

『陸』 android開發 如何實現繪畫後保存圖片。

推薦你去看下apidemo中的例子,我記得例子中surfaceview上有2個button。例子應該還是挺好找的。 在lockCanvas後面加上c.drawColor(Color.BLACK)進行清屏,ScxEcE

『柒』 如何獲取SurfaceView中Canvas繪制出的圖片

package src.demo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class GameView extends SurfaceView{private Paint paint;private SurfaceHolder sf; public GameView(Context context) { super(context); sf =this.getHolder(); sf.addCallback(new Callback () { public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub } public void surfaceCreated(SurfaceHolder holder) { Canvas canvas = sf.lockCanvas(); paint = new Paint (); paint.setColor(Color.YELLOW); canvas.drawLine(0, 0, 100, 100, paint); sf.unlockCanvasAndPost(canvas); } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } }); }}

『捌』 canvas中如何保存當前狀態(不是保存為圖片)

1.保存和恢復繪圖狀態:
在繪制圖形時,難免會重復使用某個樣式,甚至有時會在不同顏色之間來回切換。
那麼為了減少代碼冗餘,我們可以調用畫布中的save()方法,來幫我們
保存一些樣式和屬性,這樣我們就可以再通過調用restore() 方法,來再次使用這些我們曾保存好的樣式和屬性了!
下面看下具體代碼:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>保存和恢復繪圖狀態</title>
<script type="text/javascript">
window.onload = function () {
//保存繪圖狀態 save
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.fillStyle = "rgb(255,0,0)";
context.save(); //保存狀態
context.fillRect(50, 50, 100, 100); //初始定義,繪制紅色矩形
//恢復繪圖狀態 restore
context.fillStyle = "rgb(0,255,0)";
context.fillRect(200, 50, 100, 100); //繪制綠色矩形
context.restore(); //恢復畫布狀態
context.fillRect(350, 50, 100, 100); //恢復到初始定義,繪制紅色矩形
}
</script>
</head>
<body>
<canvas id="myCanvas" width="1000" height="1000">
您的瀏覽器暫不支持畫布!
</canvas>
</body>
</html>

2.保存和恢復多個繪圖狀態:
多個繪圖狀態是如何保存的呢?
我們可以這么理解:有台復印機在大量的復印資料,最先復印的肯定是在最下層的,後來的一張張的累在上面,然後堆成一摞兒,
最上面的那份肯定是最後一次的復印操作,這個毋庸置疑!
保存狀態其實就類似復印機的工作狀態,最近保存的在最上層!
來看下代碼怎麼實現:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>保存和恢復繪圖狀態</title>
<script type="text/javascript">
window.onload = function () {
//保存繪圖狀態 save
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");

context.fillStyle = "rgb(255,0,0)";
context.save();
context.fillRect(50, 200, 100, 100); //第一個保存狀態,繪制紅色矩形
context.fillStyle = "rgb(0,0,255)";
context.save();
context.fillRect(200, 200, 100, 100); //第二個保存狀態,繪制藍色矩形
context.restore();
context.fillRect(350, 200, 100, 100); //恢復藍色矩形的保存狀態,因為它是最後的保存狀態,所以它最先恢復。
context.restore();
context.fillRect(500, 200, 100, 100); //恢復紅色矩形的保存狀態。
}
</script>
</head>
<body>
<canvas id="myCanvas" width="1000" height="1000">
您的瀏覽器暫不支持畫布!
</canvas>
</body>
</html>

熱點內容
劍俠情緣緩存怎麼清理 發布:2025-01-11 22:33:56 瀏覽:315
win7旗艦版怎麼設置密碼 發布:2025-01-11 22:21:09 瀏覽:143
被害人訪問 發布:2025-01-11 22:06:24 瀏覽:366
朋友圈上傳長視頻方法 發布:2025-01-11 22:01:41 瀏覽:357
我的世界ice伺服器被炸罰款 發布:2025-01-11 21:54:36 瀏覽:725
linuxphpini配置 發布:2025-01-11 21:54:35 瀏覽:481
tp圖片壓縮 發布:2025-01-11 21:53:52 瀏覽:632
手柄怎麼調節安卓模式 發布:2025-01-11 21:44:36 瀏覽:950
國產伺服器搭建ftp 發布:2025-01-11 21:27:33 瀏覽:919
電腦系統哪個好用配置 發布:2025-01-11 21:26:04 瀏覽:141