B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 28|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

AiWROKÈí¼þÀïµÄOpenCVͼƬ·Ö±æÂÊѹËõºÍÖÊÁ¿Ñ¹Ëõ

[¸´ÖÆÁ´½Ó]

816

Ö÷Ìâ

821

Ìû×Ó

6540

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
6540
Ìøתµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
// µ¼Èë±ØÒªµÄAndroidºÍOpenCVÀà
importClass(android.graphics.Bitmap);
importClass(java.io.File);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.Size);
importClass(org.opencv.imgproc.Imgproc);

// È«ÆÁ½Øͼ
var img = screen.screenShotFull();
if (img.isNull()) {
printl("½Øͼʧ°Ü");
exit();
}

// ԭʼͼƬÐÅÏ¢
var originalPath = "/sdcard/original.jpg";
img.save(originalPath);
printl("ԭʼͼƬ³ß´ç£º" + img.getWidth() + "x" + img.getHeight());
printl("ԭʼÎļþ´óС£º" + (new File(originalPath).length()/1024).toFixed(2) + "KB");

// ·½·¨1£ºµ÷Õû·Ö±æÂÊѹËõ
function resizeCompress(imageObj, targetWidth) {
try {
var ratio = imageObj.getHeight() / imageObj.getWidth();
var targetHeight = Math.round(targetWidth * ratio);

var srcMat = imageObj.getMat().clone();
var dstMat = new Mat();

// ʹÓøü¸ßЧµÄ²åÖµËã·¨
Imgproc.resize(srcMat, dstMat,
new Size(targetWidth, targetHeight),
0, 0, Imgproc.INTER_AREA);

// ת»»»ØBitmap
var resultBitmap = Bitmap.createBitmap(
dstMat.cols(),
dstMat.rows(),
Bitmap.Config.RGB_565 // ʹÓøüÊ¡ÄÚ´æµÄÅäÖÃ
);
org.opencv.android.Utils.matToBitmap(dstMat, resultBitmap);

// ±£´æÎļþ
var outputPath = "/sdcard/resized_" + targetWidth + ".jpg";
var fos = new java.io.FileOutputStream(outputPath);
resultBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fos);
fos.close();

// ×ÊÔ´»ØÊÕ
srcMat.release();
dstMat.release();
resultBitmap.recycle();

return outputPath;
} catch(e) {
printl("ѹËõ³ö´í£º" + e.message);
return null;
}
}

// ·½·¨2£ºÖÊÁ¿Ñ¹Ëõ
function qualityCompress(imageObj, quality) {
try {
var outputPath = "/sdcard/quality_" + quality + ".jpg";
var bitmap = imageObj.getBitmap();
var fos = new java.io.FileOutputStream(outputPath);
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);
fos.close();
bitmap.recycle();
return outputPath;
} catch(e) {
printl("ÖÊÁ¿Ñ¹Ëõʧ°Ü£º" + e.message);
return null;
}
}

// Ö´ÐÐѹËõ
var resizedPath = resizeCompress(img, 640);
var qualityPath = qualityCompress(img, 70);

// ÏÔʾѹËõ½á¹û
function showCompressInfo(path) {
if (!path) return;
var file = new File(path);
if (file.exists()) {
printl("ѹËõÎļþ£º" + path);
printl("ѹËõºó³ß´ç£º" +
img.getWidth()*(640/img.getWidth()) + "x" +
img.getHeight()*(640/img.getWidth()));
printl("ѹËõºó´óС£º" + (file.length()/1024).toFixed(2) + "KB");
}
}

showCompressInfo(resizedPath);
showCompressInfo(qualityPath);

// ×ÊÔ´»ØÊÕ
img.recycle();



Ö÷Òª°üº¬Á½ÖÖѹËõ·½Ê½£º·Ö±æÂÊѹËõºÍÖÊÁ¿Ñ¹Ëõ¡£ÒÔÏÂÊÇ´úÂëµÄÏêϸ½âÊÍ£º

----- »ù´¡×¼±¸ -----

  1. Àà¿âµ¼È룺
    • µ¼ÈëAndroidͼÐÎÀࣨBitmap£©¡¢Îļþ²Ù×÷Àà
    • µ¼ÈëOpenCVºËÐÄ¿âºÍͼÏñ´¦ÀíÀà
    • ʹÓÃÆÁÄ»½ØͼÐèÒªAuto.jsµÄscreen¶ÔÏó
  1. È«ÆÁ½Øͼ£º
var img = screen.screenShotFull(); // »ñÈ¡È«ÆÁ½Øͼ
img.save(originalPath); // ±£´æԭʼͼƬ

----- ºËÐÄ·½·¨ -----

  1. ·Ö±æÂÊѹËõ·½·¨£¨resizeCompress£©£º
    • °´±ÈÀýËõС³ß´ç£º±£³Ö¿í¸ß±È¼ÆËãÄ¿±ê¸ß¶È
    • ʹÓÃOpenCVµÄINTER_AREAËã·¨£¨ÊʺÏËõСͼÏñµÄ²åÖµËã·¨£©
    • ת»»BitmapʱʹÓÃRGB_565ÅäÖ㨱ÈĬÈÏARGB_8888½ÚÊ¡50%Äڴ棩
    • ±£´æÖÊÁ¿Îª85µÄJPEGÎļþ
  1. ÖÊÁ¿Ñ¹Ëõ·½·¨£¨qualityCompress£©£º
    • Ö±½Óµ÷ÕûJPEGѹËõÖÊÁ¿£¨0-100·¶Î§£¬ÖµÔ½Ð¡Ñ¹Ëõ±ÈÔ½¸ß£©
    • ²»¸Ä±äͼƬ³ß´ç£¬½ö½µµÍÎļþÖÊÁ¿

----- Ö´ÐÐÁ÷³Ì -----

  1. ԭʼ½Øͼ±£´æ
    • ´æ´¢Â·¾¶£º/sdcard/original.jpg
    • Êä³öԭʼ·Ö±æÂÊ£¨Èç1080x2340£©ºÍÎļþ´óС£¨Èç800KB£©
  1. Ö´ÐÐÁ½ÖÖѹËõ£º
    • ·Ö±æÂÊѹËõµ½640px¿í¶È£¨Éú³É/sdcard/resized_640.jpg£©
    • ÖÊÁ¿Ñ¹Ëõµ½70%£¨Éú³É/sdcard/quality_70.jpg£©
  1. ѹËõ½á¹ûÊä³ö£º
    • ÏÔʾѹËõºó³ß´ç£¨×¢Òâ´Ë´¦´úÂë´æÔÚ¼ÆËã´íÎó£¬Êµ¼Ê¸ß¶ÈӦΪ640*ԭͼ¸ß¿í±È£©
    • ÏÔʾѹËõºóÎļþ´óС£¨µ¥Î»KB£©

----- ÓÅ»¯Ï¸½Ú -----

  1. ×ÊÔ´¹ÜÀí£º
srcMat.release(); // ÊÍ·ÅOpenCV¾ØÕóÄÚ´æ
resultBitmap.recycle(); // »ØÊÕBitmap×ÊÔ´

  1. ´íÎó´¦Àí£º
    • ʹÓÃtry-catch²¶»ñÒì³£
    • ½Øͼʧ°Üʱ×Ô¶¯Í˳ö½Å±¾

----- DZÔÚÎÊÌâ -----

  1. ³ß´ç¼ÆËãÎó²î£º µ±Ç°´úÂëÖÐimg.getWidth()*(640/img.getWidth())ʵ¼ÊµÈÓÚ640£¬¸ß¶È¼ÆËãδÕýȷʵÏÖ£¬Ó¦¸ÄΪ£º
"ѹËõºó³ß´ç£º" + targetWidth + "x" + targetHeight

  1. OpenCV³õʼ»¯£º ʵ¼ÊʹÓÃÖпÉÄÜÐèÒªÏȳõʼ»¯OpenCV¿â£º
if (!org.opencv.android.OpenCVLoader.initDebug()) {
    printl("OpenCV³õʼ»¯Ê§°Ü");
}

  1. ·¾¶¼æÈÝÐÔ£º Ó²±àÂë·¾¶£¨/sdcard/£©¿ÉÄܲ»ÊÊÓÃÓÚа汾Android£¬½¨Òé¸ÄÓû·¾³±äÁ¿£º
var externalDir = context.getExternalFilesDir(null).getAbsolutePath();

Õâ¸ö½Å±¾ÊÊÓÃÓÚÐèÒª×Ô¶¯»¯´¦ÀíÊÖ»ú½ØͼµÄ³¡¾°£¨ÈçAPP²âÊÔ½ØͼÉÏ´«£©£¬Í¨¹ýÁ½ÖÖѹËõ·½Ê½µÄ×éºÏʹÓ㬿ÉÒÔÔÚÇåÎú¶ÈºÍÎļþ´óС֮¼äÈ¡µÃƽºâ¡£

ÁíÍ⣺


ÓеÄҪȡÊÖ»úµã»÷»òÊÇÍ϶¯ÑéÖ¤ÂëµÄ£¬¾ÍÌرð¼òµ¥ÁË£¬ÓÃÈí¼þµÄ¼ôÇÐͼƬ¹¦ÄÜ¡£ÓеĿͻ§ÏëʵÏְѽصÄͼƬ·Ö±æÂÊÊÇ 720*345£¬±ä³É378*314 £¬Êµ¼Ê¾ÍÊDzüôÑéÖ¤ÂëͼƬµÄÒâ˼¡£

AiWROKÈí¼þÀïµÄOpenCVͼƬ·Ö±æÂÊѹËõºÍÖÊÁ¿Ñ¹Ëõ B2BÍøÂçÈí¼þ

È«ÆÁ½Øͼ£¬È»ºó°ÑÑéÖ¤Âë²Ã¼ô½Øͼ³öÀ´


AiWROKÈí¼þÀïµÄOpenCVͼƬ·Ö±æÂÊѹËõºÍÖÊÁ¿Ñ¹Ëõ B2BÍøÂçÈí¼þ

var img = screen.screenShotFull();

var url = img.cutImagePercent(0, 0.2, 1, 0.62);
printl(url);



»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³ÌרÇø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æȨÈí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2025-3-12 22:25 , Processed in 0.103671 second(s), 36 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí