У меня есть изображение, я хочу удалить пиксели с рисованием линий, я сделал это успешно, однако когда я хочу дальше развивать функцию восстановления удаленных пикселей с рисованием линий, я действительно зашел в тупик и до сих пор не нашел решение на несколько дней сегодня. Жду от всех помощи, большое спасибо, желаю всем хорошего дня.
это мой класс
У меня есть изображение, я хочу удалить пиксели с рисованием линий, я сделал это успешно, однако когда я хочу дальше развивать функцию восстановления удаленных пикселей с рисованием линий, я действительно зашел в тупик и до сих пор не нашел решение на несколько дней сегодня. Жду от всех помощи, большое спасибо, желаю всем хорошего дня. это мой класс [code] import android.content.Context import android.graphics.* import android.os.AsyncTask import android.util.AttributeSet import android.util.Pair import android.view.MotionEvent import android.view.View import android.widget.Button import java.lang.ref.WeakReference import java.util.*
internal class DrawView(c: Context?, attrs: AttributeSet?) : View(c, attrs) { private var livePath: Path private var pathPaint: Paint var currentBitmap: Bitmap? = null private set private val cuts = Stack ?, Bitmap?>>() private val undoneCuts = Stack() private var pathX = 0f private var pathY = 0f private var undoButton: Button? = null private var redoButton: Button? = null private var loadingModal: View? = null private var currentAction: DrawViewAction? = null
enum class DrawViewAction { AUTO_CLEAR, MANUAL_CLEAR, ZOOM }
fun setLoadingModal(loadingModal: View?) { this.loadingModal = loadingModal }
private class AutomaticPixelClearingTask(drawView: DrawView) : AsyncTask() { private val drawViewWeakReference: WeakReference = WeakReference(drawView) override fun onPreExecute() { super.onPreExecute() drawViewWeakReference.get()!!.loadingModal!!.visibility = VISIBLE drawViewWeakReference.get()!!.cuts.push( Pair( null, drawViewWeakReference.get()!!.currentBitmap ) ) }
override fun doInBackground(vararg points: Int?): Bitmap? { val oldBitmap = drawViewWeakReference.get()!!.currentBitmap val colorToReplace = oldBitmap!!.getPixel(points[0]!!, points[1]!!) val width = oldBitmap.width val height = oldBitmap.height val pixels = IntArray(width * height) oldBitmap.getPixels(pixels, 0, width, 0, 0, width, height) val rA = Color.alpha(colorToReplace) val rR = Color.red(colorToReplace) val rG = Color.green(colorToReplace) val rB = Color.blue(colorToReplace) var pixel: Int
// iteration through pixels for (y in 0 until height) { for (x in 0 until width) { // get current index in 2D-matrix val index = y * width + x pixel = pixels[index] val rrA = Color.alpha(pixel) val rrR = Color.red(pixel) val rrG = Color.green(pixel) val rrB = Color.blue(pixel) if (rA - COLOR_TOLERANCE < rrA && rrA < rA + COLOR_TOLERANCE && rR - COLOR_TOLERANCE < rrR && rrR < rR + COLOR_TOLERANCE && rG - COLOR_TOLERANCE < rrG && rrG < rG + COLOR_TOLERANCE && rB - COLOR_TOLERANCE < rrB && rrB < rB + COLOR_TOLERANCE) { pixels[index] = Color.TRANSPARENT } } } val newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) newBitmap.setPixels(pixels, 0, width, 0, 0, width, height) return newBitmap }
override fun onPostExecute(result: Bitmap) { super.onPostExecute(result) drawViewWeakReference.get()!!.currentBitmap = result drawViewWeakReference.get()!!.undoButton!!.isEnabled = true drawViewWeakReference.get()!!.loadingModal!!.visibility = INVISIBLE drawViewWeakReference.get()!!.invalidate() }
}
companion object { private const val TOUCH_TOLERANCE = 4f private const val COLOR_TOLERANCE = 20f }
init { livePath = Path() pathPaint = Paint(Paint.ANTI_ALIAS_FLAG) pathPaint.isDither = true pathPaint.color = Color.TRANSPARENT pathPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.CLEAR) pathPaint.style = Paint.Style.STROKE pathPaint.strokeJoin = Paint.Join.ROUND pathPaint.strokeCap = Paint.Cap.ROUND } } [/code] Я хочу, чтобы это выглядело вот так
Я не собираюсь отображать несколько линий по месяцам в виде документа Chart.js.
У меня есть некоторые данные, например:
line1={(X=1.1, Y =100), (X=2.1, Y=200), ...
line2={(X=1.2, Y=110), (X=2.2, Y=210) ), ...
......
Я хочу, чтобы все линии...
с использованием System.Collections; использование System.Collections.Generic; использование UnityEngine; использование UnityEngine.UI; общедоступный класс TextScript: MonoBehaviour { Текстура Текстура2D; // Start...
Я разрабатываю приложение ARFoundation для мобильных устройств Android с использованием игрового движка Unity.
Я хочу визуализировать тень виртуального объекта AR, помещенного в плоскость AR, в которой он расположен. Затем я хочу получить доступ к...