Byte[]转Bitmap时图片变花,求大神帮忙

Android写了一个相机,但是photo = BitmapFactory.decodeByteArray(data, 0, data.length)时候图片变花了,求大神帮忙,急急急

3个回答

遇到过同样的问题,我的问题是在处理data[]数据转Bitmap后,将图片旋转了90°,后来连续拍照后,保存的图片看上去像有很多张重叠在一起的,后来找了很久
,发现是旋转的问题:
Matrix matrix = new Matrix();
matrix.postRotate((float)rotateDegree);
Bitmap rotaBitmap = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, false);
return rotaBitmap;


解决方案是生成Bitmap对象后,直接保存,你可以试试

qq_25157127
qq_25157127 该怎么弄啊 求帮忙啊
接近 5 年之前 回复
qq_25157127
qq_25157127 相机拍出来是byte[]数组啊,转Bitmap的时候,在某些手机上图片就变成花的了
接近 5 年之前 回复

看下你的data是不是位图格式,数据是否完整

qq_25157127
qq_25157127 有的手机没问题,有的手机就变花了,是不是手机分辨率的问题啊,该怎么写? 大神帮帮忙啊!!
接近 5 年之前 回复

有的手机没问题,有的手机就变花了,是不是手机分辨率的问题啊,该怎么写? 大神帮帮忙啊!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android byte转图片的问题
```public class MainActivity extends Activity { private ImageView iv1,iv2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); //获取iv1的图片并将图片转成byte Bitmap bitmap = ((BitmapDrawable)iv1.getDrawable()).getBitmap(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] byteArray = baos.toByteArray(); String sendString; try { //将byte转为String sendString = new String(byteArray , "UTF-8" ); try { //将String转回byte byte[] data = sendString.getBytes("UTF-8"); // 为UTF8编吗 // 把二进制图片转成位图 YuvImage yuvimage = new YuvImage(data, ImageFormat.NV21, 100, 100, null); // 20、20分别是图的宽度与高度 ByteArrayOutputStream baos2 = new ByteArrayOutputStream(); // 80--JPG图片的质量[0-100],100最高 yuvimage.compressToJpeg(new Rect(0, 0, 20, 20), 80, baos2); byte[] jdata = baos2.toByteArray(); Bitmap bitmap2 = BitmapFactory.decodeByteArray(jdata, 0, jdata.length); iv2.setImageBitmap(bitmap2); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } private void initview() { // TODO Auto-generated method stub iv1=(ImageView) findViewById(R.id.imageView1); iv2=(ImageView) findViewById(R.id.imageView2); } } ``` ``` ![图片说明](https://img-ask.csdn.net/upload/201512/07/1449466888_815004.png) 转换完成之后图片不一样,这是怎么回事,求大神解惑
Bitmap转为byte[]时出错
在Android studio内编写一段代码,拍照后保存原图,使用bitmap读取后转为byte[]时出了问题,代码如下: Bitmap bitmap = null; try { File file = new File(fileName); if (file.exists()){ bitmap = BitmapFactory.decodeFile(fileName); } }catch (Exception e){ } ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] bytes = baos.toByteArray(); return bytes; 在转为bitmap的时候还没有问题,但是到了bitmap.compress(Bitmap.CompressFormat.PNG,100,baos)这句的时候得到的baos却为空 这到底是什么原因?求大神解答。。。
如何在自定义surfaceView 绘图面板上放置图片 或者bitmap
我在涂鸦面板上绘制图片以bitmap形式保存涂鸦 在转变成byte的形式存入数据库请问如何把数据库中的涂鸦再打开显示到绘图面板上 期待各位大神的回复
从数据库获取图片地址如何赋给bitmap类型的值
如题。。。。。。。。求大神指点 下面是我自己编写的几句代码 //从数据库获取图片地址 (value是string类型) var sert = db.T_GrowData.Where(e => e.dateSubmit == dateSubmit && e.status == 1).AsEnumerable().FirstOrDefault().value; //将获取到的string类型数据转换成byte[] byte[] bt = System.Text.Encoding.Default.GetBytes(sert); //再将转换成的byte[]赋值给bitmap MemoryStream ms = new MemoryStream(bt); Bitmap bm = (Bitmap)Image.FromStream(ms);//运行时此处报错:参数错误 我的这种思路是否正确?在赋值的时候报错是什么原因呢?这种问题该如何解决? 哪位大神有解决办法的还望不要吝啬告诉本小白,,,先谢谢啦
长二进制数据输出乱码问题 求大神帮忙!
![图片说明](https://img-ask.csdn.net/upload/201612/02/1480657519_609040.png) string strCnn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\att2000.mdb;Persist Security Info=True"; OleDbConnection myConnection = new OleDbConnection(strCnn); myConnection.Open(); OleDbCommand command = new OleDbCommand("select * from Template ", myConnection); OleDbDataReader dr = command.ExecuteReader(); byte[] buff = null; string aaa = ""; string bbb = ""; if (dr.Read()) { buff = (byte[])dr["Template4"]; } //System.IO.MemoryStream ms = new System.IO.MemoryStream(buff); ////通过流对象建立Bitmap //System.Drawing.Bitmap bmp = new Bitmap(ms); //bmp.Save("e:\\SampImag.jpg"); myConnection.Close(); System.IO.FileStream stream = new System.IO.FileStream(Server.MapPath("m.txt"),System.IO.FileMode.CreateNew, System.IO.FileAccess.Write); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(stream); bw.Write(buff); bw.Close(); stream.Close(); 取的是别人数据库上的数据,也不知道原来什么格式。谁能帮忙指点下!
wpf图片处理问题求大神指教
目的:我想做的效果是点按钮,图像平移一段距离。 现在的方法: 规定必须用处理每个像素点的颜色来进行平移(我知道有现成的平移函数,但是需求必须用每个像素处理) 问题: 效果能实现,但是出现点一次图像是原色(彩色),再点一次变为很浅的颜色(只有两种颜色),依次不断循环 如下情况: ![图片说明](https://img-ask.csdn.net/upload/201504/06/1428303240_717482.png) ![图片说明](https://img-ask.csdn.net/upload/201504/06/1428303214_681444.png) 附上代码: //获取位图 BitmapSource bmp = (BitmapSource)img1.Source; int length = (bmp.PixelWidth * bmp.Format.BitsPerPixel + 7) / 8; byte[] rawImage = new byte[length * bmp.PixelHeight]; bmp.CopyPixels(rawImage, length, 0); //临时数组初始值为255 byte[] tempImage = new byte[length * bmp.PixelHeight]; for (int i = 0; i < tempImage.Length; i++) { tempImage[i] = 255; } //平移量 int x = 50; int y = 50; //平移位图 for (int j = 0; j < bmp.PixelHeight; j++) { if ((j + y) > 0 && (j + y) < bmp.PixelHeight) { for (int i = 0; i < length; i++) { if ((i + x) > 0 && (i + x) < length) { tempImage[(i + x) + (j + y) * length] = rawImage[i + j * length]; } } } } BitmapSource bitmap = BitmapSource.Create(bmp.PixelWidth, bmp.PixelHeight, bmp.DpiX, bmp.DpiY, PixelFormats.Bgr32, bmp.Palette, tempImage, length); img1.Source = bitmap;
BitmapFactory.decodeByteArray为空,求大神解惑
``` String stra = d.getResult().getImage(); try { byte[] data=null; data = stra.getBytes("UTF-8"); // 为UTF8编码 // 把二进制图片转成位图 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,null); image.setImageBitmap(bitmap); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } ``` data中有数据,bitmap为空,求解
求android大神说说为什么我这样获取不到网页验证码图片?
求android大神说说为什么我这样获取不到网页验证码图片? HttpPost httpPost = new HttpPost("cas.gzccc.edu.cn/lyuapServer/captcha.htm"); HttpResponse httpResponse = client.execute(httpPost); COOKIE = ((AbstractHttpClient) client).getCookieStore().getCookies().get(0).getValue(); byte[] bytes = EntityUtils.toByteArray(httpResponse.getEntity()); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); return bitmap; 我是做教务系统客户端的。但是网上的那个DEMO的这段代码无法解析得到图片,一直卡在这里
android下载图片保存到本地图片大小为0KB,是什么原因??求大神解决
public Drawable loadImageFromUrl(String urlPath, String directory, String filename) { byte[] data = null; InputStream is = null; Drawable drawable = null; HttpURLConnection conn = null; URL url = null; try { url = new URL(urlPath); } catch (Exception e) { e.printStackTrace(); return drawable; } try { conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); // conn.setDoOutput(true); conn.setRequestMethod("GET"); conn.setConnectTimeout(6000); is = conn.getInputStream(); if (conn.getResponseCode() == 200) { BitmapFactory.Options opts = new BitmapFactory.Options(); data = readInputStream(is); //处理图片溢出 opts.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(data, 0, data.length, opts); opts.inSampleSize = computeSampleSize(opts, -1, AppContext.getScreenHeight()*AppContext.getScreenWidth()); opts.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, opts); drawable = (Drawable) new BitmapDrawable(bitmap); // 如果目录和图片名称存在,保存图片 if (null != directory && null != filename) { // 创建目录,保存图片 if (hasStorage(true, directory)) { // 目录地址 String directoryName = SDPATH + directory; // 创建文件 File file = new File(directoryName, filename); BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(file)); // 获取图片的格式 String dat = filename.substring(filename .lastIndexOf(".") + 1); Log.d(TAG, "图片格式1111111111:" + dat); if ("jpg".equals(dat)) { bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bos); } else if ("png".equals(dat)) { bitmap.compress(Bitmap.CompressFormat.PNG, 90, bos); } bos.flush(); bos.close(); } else { Log.d(TAG, "save picture failed"); } } } else { data = null; } } catch (Exception e) { e.printStackTrace(); drawable = null; } finally { try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } conn.disconnect(); } return drawable; }
【小白求助】安卓opencv用分类器对人脸进行识别的一些问题
小白入门,最近在看opencv的人脸识别(分类) 然后按照网上的代码,学习了之后,自己写了一段,发现运行的时候会卡很久,甚至直接退出,并且越用越卡。 我想实现的是对一张图片进行读入,然后加载多个分类器对图片内容进行识别,从而达到分类的目的。 我那个问题困扰了我一天,想来求助大神 我加载人脸识别的模型没问题,但是同时加载两个模型,比如说人脸和上身,就会卡死。 代码分3个部分,分别是MainActivity.java , execDetect.java , Detector.java 以下是MainActivity.java ``` package com.RinGo.IMGfenlei; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; import org.opencv.core.Rect; import org.opencv.core.Scalar; import org.opencv.imgproc.Imgproc; import org.opencv.objdetect.CascadeClassifier; public class MainActivity extends AppCompatActivity { private Detector frontfaceDetector; private Detector smileDetector; private static String CAMERAIMAGENAME = "image.jpg"; private ImageButton imageButton; private ImageButton imageButton2; private TextView textView; private Bitmap bitmap; private Bitmap rectBitmap; private Bitmap resizeBitmap; private Toast toast; private Button addFile; private Button startDetect; private Button check; private execDetect toDetcet; private String show; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.tv_face); // imageButton = (ImageButton) findViewById(R.id.iv_face); //imageButton.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); // imageButton2 = (ImageButton) findViewById(R.id.iv_face2); // imageButton2.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); toDetcet=new execDetect(); addFile=(Button)findViewById(R.id.addPic); startDetect=(Button)findViewById(R.id.startDetect); check=(Button)findViewById(R.id.check); startDetect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // startDetect.setClickable(false); textView.setText("正在检测"); // detect(); Thread d =new Thread(new Runnable() { @Override public void run() { toDetcet.initExecDetect(MainActivity.this,bitmap); // Toast.makeText(MainActivity.this, "initialize succeed", Toast.LENGTH_SHORT).show(); show= toDetcet.startDetect(); // Toast.makeText(MainActivity.this, " succeed", Toast.LENGTH_SHORT).show(); } }); d.run(); textView.setText(show); // startDetect.setClickable(true); } }); check.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // startDetect.setClickable(false); textView.setText(toDetcet.getReturntoMain()); // startDetect.setClickable(true); } }); addFile.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 添加照片 // 打开本地相册 Intent intent1 = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent1, 101); //startActivity(intent1); } }); String strLibraryName = "opencv_java3"; // 不需要添加前缀 libopencv_java3 { try { Log.e("loadLibrary", strLibraryName); System.loadLibrary(strLibraryName); //System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // couldn't find "libopencv_java320.so" } catch (UnsatisfiedLinkError e) { Log.e("loadLibrary", "Native code library failed to load.\n" + e); } catch (Exception e) { Log.e("loadLibrary", "Exception: " + e); } } // frontfaceDetector = new Detector(this, R.raw.haarcascade_frontalface_alt, 6, 0.2F, 0.2F, new Scalar(255, 0, 0, 255)); } /** * 点击添加照片事件 * * @param v */ public void onClick(View v) { int bt_id = v.getId(); switch (bt_id) { /* case R.id.takePhoto: // 拍照 // 打开本地相机 Intent intent2 = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); Uri imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), CAMERAIMAGENAME)); intent2.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent2, 102); break; */ case R.id.back: this.finish(); break; default: break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 加判断 不选择照片或者不拍照时不闪退 //Log.e("data", String.valueOf(data)); //if (data == null) //return; bitmap = null; switch (requestCode) { // 选择图片库的图片 case 101: if (resultCode == RESULT_OK) { try { Uri uri = data.getData(); bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri); } catch (Exception e) { e.printStackTrace(); } } break; // 表示调用本地照相机拍照 case 102: if (resultCode == RESULT_OK) { //Bundle bundle = data.getExtras(); //bm = (Bitmap) bundle.get("data"); bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/" + CAMERAIMAGENAME); } break; default: break; } Log.e("bitmap", String.valueOf(bitmap)); if (bitmap == null) { toast = Toast.makeText(MainActivity.this, "未选择图像", Toast.LENGTH_SHORT); toast.show(); return; } // 识别图片 并画框 /* Thread detect=new Thread(new Runnable() { @Override public void run() { } }); detect.run(); */ // 将照片剪裁 bitmap将被释放重新赋值 //int ibWidth = imageButton.getWidth(); // int ibHeight = imageButton.getHeight(); //resizeBitmap = imageButton.resizeBitmap(bitmap, ibWidth, ibHeight); //imageButton.setBitmap(resizeBitmap); //imageButton2.setBitmap(rectBitmap); } private void detect() { MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { toDetcet.initExecDetect(MainActivity.this,bitmap); // Toast.makeText(MainActivity.this, "initialize succeed", Toast.LENGTH_SHORT).show(); String show= toDetcet.startDetect(); // Toast.makeText(MainActivity.this, " succeed", Toast.LENGTH_SHORT).show(); textView.setText(show); } }); //textView.setText(toDetcet.getReturntoMain()); } } ``` 以下是activity_main.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_face" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:text="未检测到人脸" android:textColor="@color/colorAccent" app:layout_constraintBottom_toTopOf="@+id/ll1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <LinearLayout android:id="@+id/ll1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"> <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton android:id="@+id/addPic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_weight="1" android:onClick="onClick" android:text=" 选择图片(CV) " android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton android:id="@+id/startDetect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_weight="1" android:onClick="onClick" android:text=" 开始识别 " android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton android:id="@+id/check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_weight="1" android:onClick="onClick" android:text=" 结果 " android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="0dp" android:layout_weight="1" android:onClick="onClick" android:text=" 返回 " android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> </LinearLayout> </LinearLayout> ``` 以下是execDetect.java ``` package com.RinGo.IMGfenlei; import android.content.Context; import android.graphics.Bitmap; import android.util.Log; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; import org.opencv.core.Rect; import org.opencv.core.Scalar; import org.opencv.imgproc.Imgproc; import org.opencv.objdetect.CascadeClassifier; import com.RinGo.IMGfenlei.R; import com.RinGo.IMGfenlei.Detector; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; public class execDetect { private Detector frontfaceDetector; private Detector smilefaceDetector; private Detector[] detectors=new Detector[10]; private Detector detector; private Bitmap bitmap; private Bitmap rectBitmap; private String returntoMain=""; private String[] detectorNames=new String[10]; private CascadeClassifier mFrontalFaceClassifier = null; //正脸 级联分类器 private CascadeClassifier mProfileFaceClassifier = null; //侧脸 级联分类器 private int smilefacenum=0; private Context mcontext; private int[] cascades=new int[10]; public void initExecDetect(Context _context,Bitmap _bitmap) { bitmap=_bitmap; mcontext=_context; cascades[0]=R.raw.haarcascade_frontalface_alt; detectors[0] = new Detector(_context,R.raw.haarcascade_frontalface_alt, 1, 0.2F, 0.2F, new Scalar(255, 0, 0, 255)); detectorNames[0]="正面人脸"; cascades[1]=R.raw.lbpcascade_frontalface; detectors[1] = new Detector(_context,R.raw.lbpcascade_frontalface, 1, 0.2F, 0.2F, new Scalar(255, 0, 0, 255)); detectorNames[1]="正面人脸2"; } public String startDetect() { // bitmapToMat Mat toMat = new Mat(); Utils.bitmapToMat(bitmap, toMat); // Mat copyMat = new Mat(); // toMat.copyTo(copyMat); // 复制 // togray Mat gray = new Mat(); MatOfRect mRect = new MatOfRect(); Imgproc.cvtColor(toMat, gray, Imgproc.COLOR_RGBA2GRAY); for (int id = 0; id < detectors.length; id++) { //detector = new Detector(mcontext,cascades[id], 3, 0.1F, 0.1F, new Scalar(255, 0, 0, 255)); try { int num = 0; mRect=new MatOfRect(); Rect[] object = detectors[id].detectObjectImage( gray, mRect); Log.e("objectLength", object.length + ""); num=object.length; /* for (Rect rect : object) { num++; } */ returntoMain =returntoMain+ String.format("检测到%1$d个" + detectorNames[id], num) + "\n"; } catch (Exception e) { e.printStackTrace(); } //textView.setText(String.format("检测到%1$d个人脸", facenum)); //Utils.matToBitmap(toMat, bitmap); } return returntoMain; } public String getReturntoMain() { return returntoMain; } } ``` 以下是Detector.java,定义了我的级联分类器的设置 ``` package com.RinGo.IMGfenlei; import android.content.Context; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; import org.opencv.core.Rect; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.objdetect.CascadeClassifier; import org.opencv.objdetect.Objdetect; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /** * Created by think-hxr on 17-10-12. */ public class Detector { private CascadeClassifier mCascadeClassifier; private int mMinNeighbors; private float mRelativeObjectWidth; private float mRelativeObjectHeight; private Scalar mRectColor; /** * 构造方法 * * @param context 上下文 * @param id 级联分类器ID * @param minNeighbors 连续几帧确认目标 * @param relativeObjectWidth 最小宽度屏占比 * @param relativeObjectHeight 最小高度屏占比 * @param rectColor 画笔颜色 */ public Detector(Context context, int id, int minNeighbors, float relativeObjectWidth, float relativeObjectHeight, Scalar rectColor) { context = context.getApplicationContext(); mCascadeClassifier = createDetector(context, id); mMinNeighbors = minNeighbors; mRelativeObjectWidth = relativeObjectWidth; mRelativeObjectHeight = relativeObjectHeight; mRectColor = rectColor; } /** * 创建检测器 * * @param context 上下文 * @param id 级联分类器ID * @return 检测器 */ private CascadeClassifier createDetector(Context context, int id) { CascadeClassifier javaDetector; InputStream is = null; FileOutputStream os = null; try { is = context.getResources().openRawResource(id); File cascadeDir = context.getDir("cascade", Context.MODE_PRIVATE); File cascadeFile = new File(cascadeDir, id + ".xml"); os = new FileOutputStream(cascadeFile); byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = is.read(buffer)) != -1) { os.write(buffer, 0, bytesRead); } javaDetector = new CascadeClassifier(cascadeFile.getAbsolutePath()); //javaDetector=new CascadeClassifier(); // javaDetector.load(cascadeFile.getAbsolutePath()); if (javaDetector.empty()) { javaDetector = null; } boolean delete = cascadeDir.delete(); return javaDetector; } catch (IOException e) { e.printStackTrace(); return null; } finally { try { if (null != is) { is.close(); } if (null != os) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * 目标检测 视频 * * @param gray 灰度图像 * @param object 识别结果的容器 * @return 检测到的目标位置集合 */ public Rect[] detectObject(Mat gray, MatOfRect object) { // 使用Java人脸检测 mCascadeClassifier.detectMultiScale( gray, // 要检查的灰度图像 object, // 检测到的人脸 1.1, // 表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%; mMinNeighbors, // 默认是3 控制误检测,表示默认几次重叠检测到人脸,才认为人脸存在 Objdetect.CASCADE_SCALE_IMAGE, getSize(gray, mRelativeObjectWidth, mRelativeObjectHeight), // 目标最小可能的大小 gray.size()); // 目标最大可能的大小 return object.toArray(); } /** * 目标检测 图片 * * @param gray 灰度图像 * @param object 识别结果的容器 * @return */ public Rect[] detectObjectImage(Mat gray, MatOfRect object) { mCascadeClassifier.detectMultiScale(gray,object); return object.toArray(); } /** * 根据屏占比获取大小 * * @param gray gray * @param relativeObjectWidth 最小宽度屏占比 * @param relativeObjectHeight 最小高度屏占比 * @return 大小 */ private Size getSize(Mat gray, float relativeObjectWidth, float relativeObjectHeight) { Size size = gray.size(); int cameraWidth = gray.cols(); int cameraHeight = gray.rows(); int width = Math.round(cameraWidth * relativeObjectWidth); int height = Math.round(cameraHeight * relativeObjectHeight); size.width = 0 >= width ? 0 : (cameraWidth < width ? cameraWidth : width); // width [0, cameraWidth] size.height = 0 >= height ? 0 : (cameraHeight < height ? cameraHeight : height); // height [0, cameraHeight] return size; } /** * 获取画笔颜色 * * @return 颜色 */ public Scalar getRectColor() { return mRectColor; } } ```
C#Base64转图片报参数无效
byte[] arr = Convert.FromBase64String(inputStr); MemoryStream ms = new MemoryStream(arr ,0, arr.Length); Bitmap bmp = new Bitmap(ms); bmp.Save(ConfigData.IDCardPath + ID + ".jpg", ImageFormat.Jpeg); 这一句报参数无效的错误:Bitmap bmp = new Bitmap(ms); 网上看到都是这么做的,求教各路大神啊
利用BitmapFactory.decodeByteArray对网络图片解析失败
请各路大神帮帮忙!! 目前在实现一个ANDROID APP,需要获取后台图片并对齐解析并在客户端进行展示。我获得的图片资源格式为byte[],这是已确定的,因此我采用的方法大致是: byte[] b = getBytesFromXX(); Bitmap bitmap = BitmapFactory.decodeByteArray(b,0,b.length); 大致的思路如上面,在debug的时候发现b里面是有东西的,但是执行完BitmapFactory.decodeByteArray这个函数后得到的结果为空。 所以想请教各位大神朋友们上面问题的原因和解决方案,多谢各位了!!!
求大神解决decoder->decode returned false
public static Bitmap bytesToBitmap(byte[] b) { if (b.length != 0) { return decodeByteArray(b, 0, b.length); } return null; }b的length太大的时候就报错, 图片url http://image.casadellibro.com/a/l/t1/04/9788499672304.jpg
Image.FromStream(stream1) 将数据流转成图片时报错:内存不足
# 将数据流转成图片时报错,内存不足,不知道怎么处理,求大神指点 ``` //解析json串 JObject JsonTrackData = (JObject)JsonConvert.DeserializeObject(TrackData); //获取imageInfo string imgStrData = JsonTrackData["result"]["imageInfo"].ToString(); //得到图片字节码 //Base6解码 byte[] bytes_data = Convert.FromBase64String(imgStrData); string urlData = Server.MapPath("~/TrackImage/Data.png"); MemoryStream stream1 = new MemoryStream(bytes_data); Bitmap btm = new Bitmap(stream1); stream1.Position = 1333300; System.Drawing.Image imgData = Image.FromStream(stream1);//报错内存不足 imgData.Save(urlData, System.Drawing.Imaging.ImageFormat.Png);//xxx.jpeg为文件名 ```
安卓,DiskLruChche,不能存取到bitmap的内容,求指教
布局就只有一个imageview,不贴了. 以下是mainactivity,只贴有关的部分,avd是安卓6.0 ``` public class MainActivity extends AppCompatActivity { ImageView imageView; File file; //cache的位置 DiskLruCache mDiskLruCache; DiskLruCache.Editor editor; URL imgurl; HttpURLConnection con; OutputStream editorOutput; //editor的输出流 InputStream in; //从网络获取的输入流 DiskLruCache.Snapshot snapshot; Bitmap bitmap; Handler handler; //子线程已获取到bitmap时发消息给主线程 class MyHandler extends Handler { public void handleMessage(Message msg) { switch(msg.arg1) { case 1: imageView.setImageBitmap(bitmap); Log.e("this","已接受到消息"); } } } //计算md5 public String hashKeyForDisk(String key) { String cacheKey; try { final MessageDigest mDigest = MessageDigest.getInstance("MD5"); mDigest.update(key.getBytes()); cacheKey = bytesToHexString(mDigest.digest()); } catch (NoSuchAlgorithmException e) { cacheKey = String.valueOf(key.hashCode()); } return cacheKey; } private String bytesToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { sb.append('0'); } sb.append(hex); } return sb.toString(); } class myThread extends Thread { public void run() { // String path = getExternalCacheDir().getPath(); String path=Environment.getExternalStorageDirectory().getPath(); file = new File(path + "/mytest"); if (!file.exists()) file.mkdirs(); try { mDiskLruCache = DiskLruCache.open(file, 1, 1, 50 * 1024 * 1024); String url = "http://v1.qzone.cc/skin/201310/08/17/19/5253ce06a29c2425.jpg%21600x600.jpg"; String key = hashKeyForDisk(url); editor = mDiskLruCache.edit(key); editorOutput = editor.newOutputStream(0); //从网络获取数据流 imgurl = new URL(url); con = (HttpURLConnection) imgurl.openConnection(); in = con.getInputStream(); int b; //把输入流写到editor的输出流 while ((b = in.read()) != 0) editorOutput.write(b); editorOutput.flush(); con.disconnect(); editor.commit(); mDiskLruCache.flush(); //从缓存中读取bitmap snapshot = mDiskLruCache.get(key); if (snapshot != null) { FileInputStream is = (FileInputStream) snapshot.getInputStream(0); bitmap = BitmapFactory.decodeStream(is); Message msg = handler.obtainMessage(); msg.arg1 = 1; handler.sendMessage(msg); } else { Log.e("this", "snapshot为空"); } } catch (Exception e) { Log.e("this", e.toString()); } } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int REQUEST_EXTERNAL_STORAGE=1; String[] PERMISSIONS_STORAGE={Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE); Log.e("this", "已拿到权限"); handler=new MyHandler(); imageView = (ImageView) MainActivity.this.findViewById(R.id.imageview); Thread thread=new myThread(); thread.start(); } } ``` 下面再贴贴manifest中的权限 ``` <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> ``` 代码如上,运行效果如下 ![图片说明](https://img-ask.csdn.net/upload/201606/05/1465093832_457065.png) ![图片说明](https://img-ask.csdn.net/upload/201606/05/1465093847_460165.png) ![图片说明](https://img-ask.csdn.net/upload/201606/05/1465093856_830524.png) 我试过直接从网络获取的流中直接获取bitmap是可以的,而这样先用DiskLruCache存了再取回来就不行,求大神指点指点
c#用serialport进行的串口数据接收,遇到了问题,求大神指点
运行后再richtextbox1中只显示一个数,例如:33 随后会报错:对象未引用到对象的实例,点了关闭后又会出现一个数据,例如31,之后又会报错,如此循环,而且数据不太对。 整了好久了,希望能帮帮忙,第一次做这,谢谢!! 代码: namespace yfy_串口调试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /****************************设置变量******************************/ public string[] strArray; public SerialPort sp1 = new SerialPort(); public Byte[] mydata; public int mydatalength; //这个数的值是由接收到的字节长度决定的,并且作为mydata的长度,如果索引值还超过数组定义值,就应该是接收问题。 public int zhengfu = 2, now_x = 30; public static Bitmap bmp = new Bitmap(500,350); public Graphics gph = Graphics.FromImage(bmp); public char name_image='A'; /*****************************相关函数****************************/ public void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)//数据接收函数 { if (sp1.IsOpen==true ) //为了严谨性,加上检查串口是否被打开 { if (rbRcv16.Checked == true) //接收16进制按钮 { try { int average_speed = 0; //设置初始平均速度 Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建接收字节数组 sp1.Read(receivedData, 0, receivedData.Length); //读取数据 sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer mydatalength = receivedData.Length; for (int i = 0; i < receivedData.Length; i++) //窗体显示 { richTextBox1.Text = receivedData[i].ToString("X2"); //16进制显示在接受栏 mydata[i] = receivedData[i]; richTextBox1.Text += ","; //让每个数据都隔开 average_speed += receivedData[i]; } textBox1.Text = (average_speed / receivedData.Length).ToString("X2"); } catch (System.Exception ex) { MessageBox.Show(ex.Message, "出错提示"); } } } else { MessageBox.Show("请打开某个串口或者没有选中16进制接收", "错误提示"); } } private void Form1_Load(object sender, EventArgs e)//页面初始化 { Control.CheckForIllegalCrossThreadCalls = false; //强制不检查线程 sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived); //订阅委托 sp1.ReceivedBytesThreshold =1; //当缓冲区的字节数为x时,触发datareceive事件 //检查是否有串口 string[] str = SerialPort.GetPortNames(); if (str == null) { MessageBox.Show("本机没有串口!", "Error!"); return; } //添加串口项目 foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) { cbSerial.Items.Add(s); //获取有COM口 } rbRcv16.Checked = true; //接收数据按16进制进行 } private void btnSwitch_Click(object sender, EventArgs e)//设置串口 { if (sp1.IsOpen == false) { try { string serialName = cbSerial.SelectedItem.ToString();//读取串口号 sp1.PortName = serialName; //设置串口号 sp1.BaudRate = 9600; //波特率 sp1.DataBits = 8; //数据位 sp1.StopBits = StopBits.One; //停止位 sp1.Parity = Parity.None; //校验位 sp1.Open(); //打开串口 btnSwitch.Text = "关闭串口"; } catch (System.Exception ex) { MessageBox.Show("Error:" + ex.Message, "Error"); return; } } else { sp1.Close(); //关闭串口 btnSwitch.Text = "打开串口"; } }
app 调用webservice的图片上传接口报错
以下为c#写的图片上传接口,图片是在app转为base64的;而当在服务上测试时是可以上传,即下图的位置![图片说明](https://img-ask.csdn.net/upload/201503/04/1425459402_712808.png) 可是在app调用该接口时却出错,这是为什么,困扰了多天了。请大神帮忙哈 public JObject UploadPicture(string jsonString) { JToken Picture; JObject jobject = JObject.Parse(jsonString); Picture = jobject.GetValue("Picture"); JObject jObj = new JObject(); int re = 0; string imgStr = Picture.ToString(),pictureAddress; string picture = DateTime.Now.Ticks.ToString() + ".jpg", filePath; filePath = "~/Resources/images/" + picture; //将base64图片解析出来 if (imgStr == "") { re = 0; } else { byte[] LogoBytes = Convert.FromBase64String(imgStr);//base64转二进制 MemoryStream stream = new MemoryStream(LogoBytes);//二进制转流 Image img1 = Image.FromStream(stream);//流转image if (Directory.Exists(Server.MapPath("~/Resources/images")) == false) { Directory.CreateDirectory(Server.MapPath("~/Resources/images")); } string add = Server.MapPath(filePath);//地址 Bitmap server = new Bitmap(img1); try { server.Save(add); re = 1; } catch { re = 0; } stream.Dispose(); server.Dispose(); img1.Dispose(); } jObj.Add(new JProperty("re", re)); if (re == 1) { pictureAddress = "/wd_test/Resources/images/" + picture; jObj.Add(new JProperty("pictureAddress", pictureAddress)); } return jObj; }
C# 调用C++ DLL 参数Emgu.cv.Mat如何传递
C++ 做了视频识别的DLL动态库,导出函数 extern "C" __declspec(dllexport)float Recognition(Mat frame,int type); C#主程序调用C++的视频识别动态库 [DllImport(@"Recognition.dll", EntryPoint = "Recognition", CallingConvention = CallingConvention.Cdecl)] public extern static float Recognition(Mat frame, int iType); C#调用内容如下: Bitmap bmp = cameraControl1.TakeSnapshot(); Image<Bgr, byte> image = new Image<Bgr, byte>(bmp); //Image<Bgr, byte>转Mat Mat mat = image.Mat; Mat Graymat = mat.Clone(); float Value = Recognition(Graymat, 1); 运行到float Value = Recognition( Graymat, 1);行,查看 Graymat 变量内容正常; 按F11 调试到C++工程;查看传入的Mat 变量 frame 宽度、高度、数据均不正常;不知道原因,改成参数引用传递也不行。调试信息如图 哪位大神急救下! ![图片说明](https://img-ask.csdn.net/upload/201908/20/1566271847_310078.png)![图片说明](https://img-ask.csdn.net/upload/201908/20/1566271855_169575.png)
如何把二进制图片读取到image控件
大神帮帮忙看看 ``` //SQLHelper.cs //从数据库中读取image类型图片并且显示到控件上 public bool ShowImage(string sql, System.Web.UI.WebControls.Image img1) { SqlConnection imgConn = new SqlConnection(connectionString); try { SqlCommand cmd = new SqlCommand(sql, imgConn); imgConn.Open(); byte[] b = (byte[])cmd.ExecuteScalar(); if (b.Length > 0) { MemoryStream stream = new MemoryStream(b, true); stream.Write(b, 0, b.Length); Image img = Image.FromStream(stream); //img.ImageUrl = new System.Drawing.Bitmap(stream); stream.Close(); } return true; } catch { img1 = null; return false; } finally { imgConn.Close(); } } ``` ``` //后台 //显示图片 sp.ShowImage("Select Photo From Description1 Where id='" +this.id.Text + "'", imgphoto); ```
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问