锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品V欧洲精品V日韩精品,亚洲乱人伦精品图片,亚洲福利一区二区三区http://www.tkk7.com/Pudgy/category/2630.html<SCRIPT> var dict_width = 'auto' var dict_height = '72px' var dict_background = 'transparent' var dict_border = '0px dotted #000000' var dict_textColor = '#6FBC4C' var dict_fontSize = '100%' var dict_encoding = 'Utf-8' </SCRIPT> <SCRIPT src="http://livid.cn/services/fortune"></SCRIPT> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script>zh-cnWed, 28 Feb 2007 15:41:24 GMTWed, 28 Feb 2007 15:41:24 GMT60Rotate Classhttp://www.tkk7.com/Pudgy/articles/13703.htmlPudgy's WorldPudgy's WorldWed, 21 Sep 2005 23:26:00 GMThttp://www.tkk7.com/Pudgy/articles/13703.htmlhttp://www.tkk7.com/Pudgy/comments/13703.htmlhttp://www.tkk7.com/Pudgy/articles/13703.html#Feedback0http://www.tkk7.com/Pudgy/comments/commentRss/13703.htmlhttp://www.tkk7.com/Pudgy/services/trackbacks/13703.html

聽聽聽聽/**
聽聽聽聽聽*聽Constant聽to聽specify聽that聽the聽bounding聽box聽should聽be聽not聽be聽changed聽
聽聽聽聽聽*聽for聽any聽angle聽of聽rotation聽when聽creating聽the聽rotated聽image.聽聽This聽
聽聽聽聽聽*聽means聽the聽returned聽image聽will聽be聽the聽same聽size聽as聽the聽given聽image.聽聽
聽聽聽聽聽*聽Of聽course,聽that聽also聽means聽the聽corners聽of聽the聽image聽may聽be聽cut聽off.聽聽
聽聽聽聽聽
*/
聽聽聽聽
publicstaticfinalint聽NO_BOUNDING_BOX聽=0;

聽聽聽聽
/**
聽聽聽聽聽*聽Constant聽to聽specify聽that聽the聽exact聽bounding聽box聽should聽be聽used聽for聽
聽聽聽聽聽*聽the聽specified聽angle聽of聽rotation聽when聽creating聽the聽rotated聽image.聽聽
聽聽聽聽聽*聽This聽is聽the聽default聽option.聽聽When聽used,聽the聽rotated聽image聽may聽be聽
聽聽聽聽聽*聽larger聽then聽the聽source聽image,聽but聽no聽larger聽then聽needed聽to聽fit聽the聽
聽聽聽聽聽*聽rotated聽image聽exactly.聽聽Therefore,聽rotating聽the聽same聽image聽to聽various聽
聽聽聽聽聽*聽angles聽may聽result聽in聽varying聽image聽sizes.聽聽
聽聽聽聽聽
*/
聽聽聽聽
publicstaticfinalint聽EXACT_BOUNDING_BOX聽=1;

聽聽聽聽
/**
聽聽聽聽聽*聽Constant聽to聽specify聽that聽the聽largest聽bounding聽box聽should聽be聽used聽when聽
聽聽聽聽聽*聽creating聽the聽rotated聽image.聽聽When聽used,聽the聽rotated聽image聽will聽be聽
聽聽聽聽聽*聽larger聽then聽the聽source聽image,聽but聽all聽rotated聽images聽of聽that聽same聽
聽聽聽聽聽*聽source聽image聽will聽be聽the聽same聽size,聽regardless聽of聽the聽angle聽of聽
聽聽聽聽聽*聽rotation.聽聽This聽may聽result聽in聽significant聽"empty聽space"聽between聽the聽
聽聽聽聽聽*聽edge聽of聽the聽returned聽image聽and聽the聽actual聽drawn聽pixel聽areas.聽聽
聽聽聽聽聽
*/
聽聽聽聽
publicstaticfinalint聽LARGEST_BOUNDING_BOX聽=2;


聽聽聽聽
/**
聽聽聽聽聽*聽Rotates聽the聽specified聽image聽the聽specified聽number聽of聽degrees.聽聽The聽
聽聽聽聽聽*聽rotation聽is聽performed聽around聽the聽center聽point聽of聽the聽image.聽聽
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽聽img聽聽聽聽聽聽聽聽聽the聽image聽to聽rotate
聽聽聽聽聽*聽
@param聽聽degrees聽聽聽聽聽the聽degrees聽to聽rotate
聽聽聽聽聽*聽
@param聽聽bbm聽聽聽聽聽聽聽聽聽the聽bounding聽box聽mode,聽default聽is聽EXACT_BOUNDING_BOX
聽聽聽聽聽*聽
@param聽聽background聽聽the聽background聽paint聽(texture,聽color聽or聽gradient),聽
聽聽聽聽聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽can聽be聽null
聽聽聽聽聽*聽
@return聽聽the聽image
聽聽聽聽聽*聽
@see聽聽#NO_BOUNDING_BOX
聽聽聽聽聽*聽
@see聽聽#EXACT_BOUNDING_BOX
聽聽聽聽聽*聽
@see聽聽#LARGEST_BOUNDING_BOX
聽聽聽聽聽
*/
聽聽聽聽
publicstatic聽BufferedImage聽rotateDegrees(Image聽img,聽double聽degrees,聽int聽bbm,聽Paint聽background)聽{
聽聽聽聽聽聽聽聽
return聽rotateRadians(img,聽Math.toRadians(degrees),聽bbm,聽background);
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Rotates聽the聽specified聽image聽the聽specified聽number聽of聽radians.聽聽The聽
聽聽聽聽聽*聽rotation聽is聽performed聽around聽the聽center聽point聽of聽the聽image.聽聽This聽
聽聽聽聽聽*聽method聽is聽provided聽for聽convenience聽of聽applications聽using聽radians.聽聽
聽聽聽聽聽*聽For聽most聽people,聽degrees聽is聽simpler聽to聽use.聽聽
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽聽img聽聽聽聽聽聽聽聽聽the聽image聽to聽rotate
聽聽聽聽聽*聽
@param聽聽radians聽聽聽聽聽the聽radians聽to聽rotate
聽聽聽聽聽*聽
@param聽聽bbm聽聽聽聽聽聽聽聽聽the聽bounding聽box聽mode,聽default聽is聽EXACT_BOUNDING_BOX
聽聽聽聽聽*聽
@param聽聽background聽聽the聽background聽paint聽(texture,聽color聽or聽gradient),聽
聽聽聽聽聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽can聽be聽null
聽聽聽聽聽*聽
@return聽聽the聽image
聽聽聽聽聽*聽
@see聽聽#NO_BOUNDING_BOX
聽聽聽聽聽*聽
@see聽聽#EXACT_BOUNDING_BOX
聽聽聽聽聽*聽
@see聽聽#LARGEST_BOUNDING_BOX
聽聽聽聽聽
*/
聽聽聽聽
publicstatic聽BufferedImage聽rotateRadians(Image聽img,聽double聽radians,聽int聽bbm,聽Paint聽background)聽{
聽聽聽聽聽聽聽聽
//聽get聽the聽original聽image's聽width聽and聽height
聽聽聽聽聽聽聽聽int聽iw聽=聽img.getWidth(null);
聽聽聽聽聽聽聽聽
int聽ih聽=聽img.getHeight(null);
聽聽聽聽聽聽聽聽
//聽calculate聽the聽new聽image's聽size聽based聽on聽bounding聽box聽mode
聽聽聽聽聽聽聽聽Dimension聽dim;
聽聽聽聽聽聽聽聽
if(bbm聽==聽NO_BOUNDING_BOX)聽{
聽聽聽聽聽聽聽聽聽聽聽聽dim聽
=new聽Dimension(iw,聽ih);
聽聽聽聽聽聽聽聽}聽
elseif(bbm聽==聽LARGEST_BOUNDING_BOX)聽{
聽聽聽聽聽聽聽聽聽聽聽聽dim聽
=聽getLargestBoundingBox(iw,聽ih);
聽聽聽聽聽聽聽聽}聽
else聽{聽//聽EXACT_BOUNDING_BOX
聽聽聽聽聽聽聽聽聽聽聽聽dim聽=聽getBoundingBox(iw,聽ih,聽Math.toDegrees(radians));
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
//聽get聽the聽new聽image's聽width聽and聽height
聽聽聽聽聽聽聽聽int聽w聽=聽dim.width;
聽聽聽聽聽聽聽聽
int聽h聽=聽dim.height;
聽聽聽聽聽聽聽聽
//聽get聽the聽location聽to聽draw聽the聽original聽image聽on聽the聽new聽image
聽聽聽聽聽聽聽聽int聽x聽=聽(w/2)-(iw/2);
聽聽聽聽聽聽聽聽
int聽y聽=聽(h/2)-(ih/2);
聽聽聽聽聽聽聽聽
//聽need聽to聽copy聽the聽given聽image聽to聽a聽new聽BufferedImage聽because聽
聽聽聽聽聽聽聽聽
//聽it聽is,聽in聽most聽cases,聽going聽to聽be聽a聽larger聽image聽so聽it聽
聽聽聽聽聽聽聽聽
//聽needs聽to聽be聽drawn聽centered聽on聽the聽larger聽image
聽聽聽聽聽聽聽聽BufferedImage聽bi聽=new聽BufferedImage(w,聽h,聽BufferedImage.TYPE_INT_ARGB);
聽聽聽聽聽聽聽聽Graphics2D聽g2d聽
=聽bi.createGraphics();
聽聽聽聽聽聽聽聽
//聽set聽some聽rendering聽hints聽for聽better聽looking聽images
聽聽聽聽聽聽聽聽g2d.setRenderingHints(renderingHints);
聽聽聽聽聽聽聽聽
//聽draw聽the聽background聽paint,聽if聽necessary
聽聽聽聽聽聽聽聽if(background聽!=null)聽{
聽聽聽聽聽聽聽聽聽聽聽聽g2d.setPaint(background);
聽聽聽聽聽聽聽聽聽聽聽聽g2d.fillRect(
0,聽0,聽w,聽h);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
//聽if聽not聽rotating,聽just聽draw聽it聽normally,聽else聽create聽a聽transform
聽聽聽聽聽聽聽聽if(radians聽==0.0)聽{
聽聽聽聽聽聽聽聽聽聽聽聽g2d.drawImage(img,聽x,聽y,聽iw,聽ih,聽
null);
聽聽聽聽聽聽聽聽}聽
else聽{
聽聽聽聽聽聽聽聽聽聽聽聽g2d.rotate(radians,聽w
/2,聽h/2);
聽聽聽聽聽聽聽聽聽聽聽聽g2d.translate(x,聽y);
聽聽聽聽聽聽聽聽聽聽聽聽g2d.drawImage(img,聽
0,聽0,聽iw,聽ih,聽null);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽g2d.dispose();
聽聽聽聽聽聽聽聽
return聽bi;
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Gets聽the聽largest聽bounding聽box聽size聽that聽can聽hold聽an聽image聽of聽the聽
聽聽聽聽聽*聽specified聽size聽at聽any聽angle聽of聽rotation.聽聽
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽聽width聽聽聽the聽image聽width
聽聽聽聽聽*聽
@param聽聽height聽聽the聽image聽height
聽聽聽聽聽*聽
@return聽聽the聽bounding聽box聽size
聽聽聽聽聽
*/
聽聽聽聽
publicstatic聽Dimension聽getLargestBoundingBox(int聽width,聽int聽height)聽{
聽聽聽聽聽聽聽聽
//聽The聽largest聽bounding聽box聽is聽the聽largest聽area聽needed聽to聽fit聽the聽
聽聽聽聽聽聽聽聽
//聽specified聽image聽at聽any聽angle聽or聽rotation.聽聽This聽is聽simpler聽then聽
聽聽聽聽聽聽聽聽
//聽getting聽the聽bounding聽box聽for聽a聽given聽angle聽because聽the聽largest聽
聽聽聽聽聽聽聽聽
//聽box聽will聽put聽the聽corner聽of聽the聽image聽box聽directly聽along聽the聽
聽聽聽聽聽聽聽聽
//聽vertical聽or聽horizontal聽axis聽from聽the聽image聽center聽point.聽聽The聽
聽聽聽聽聽聽聽聽
//聽distance聽between聽the聽image聽rectangle's聽center聽and聽any聽corner聽
聽聽聽聽聽聽聽聽
//聽is聽the聽hypotenuse聽of聽a聽right聽triangle聽who's聽other聽sides聽are聽
聽聽聽聽聽聽聽聽
//聽half聽the聽width聽(a)聽and聽half聽the聽height聽(b)聽of聽the聽rectangle.聽聽
聽聽聽聽聽聽聽聽
//聽A聽little聽a^2聽+聽b^2聽=聽c^2聽calculation聽and聽we聽get聽the聽length聽of聽
聽聽聽聽聽聽聽聽
//聽the聽hypotenuse.聽聽Double聽that聽to聽get聽a聽square聽within聽which聽the聽
聽聽聽聽聽聽聽聽
//聽image聽can聽be聽rotated聽at聽any聽angle聽without聽clipping聽the聽image.聽聽
聽聽聽聽聽聽聽聽double聽a聽=聽(double)width聽/2.0;
聽聽聽聽聽聽聽聽
double聽b聽=聽(double)height聽/2.0;
聽聽聽聽聽聽聽聽
//聽use聽Math.ceil()聽to聽round聽up聽to聽an聽int聽value
聽聽聽聽聽聽聽聽int聽c聽=聽(int)Math.ceil(Math.sqrt((a聽*聽a)聽+聽(b聽*聽b))聽*2.0);
聽聽聽聽聽聽聽聽
returnnew聽Dimension(c,聽c);
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Gets聽the聽optimal/smallest聽bounding聽box聽size聽that聽can聽hold聽an聽image聽of聽
聽聽聽聽聽*聽the聽specified聽size聽at聽the聽specified聽angle聽of聽rotation.聽聽
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽聽width聽聽聽the聽image聽width
聽聽聽聽聽*聽
@param聽聽height聽聽the聽image聽height
聽聽聽聽聽*聽
@return聽聽the聽bounding聽box聽size
聽聽聽聽聽
*/
聽聽聽聽
publicstatic聽Dimension聽getBoundingBox(int聽width,聽int聽height,聽double聽degrees)聽{
聽聽聽聽聽聽聽聽degrees聽
=聽normalizeDegrees(degrees);
聽聽聽聽聽聽聽聽
//聽if聽no聽rotation聽or聽180聽degrees,聽the聽size聽won't聽change
聽聽聽聽聽聽聽聽if(degrees聽==0.0||聽degrees聽==180.0)聽{
聽聽聽聽聽聽聽聽聽聽聽聽
returnnew聽Dimension(width,聽height);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
//聽if聽90聽or聽270聽(quarter聽or聽3-quarter聽rotations)聽the聽width聽becomes聽
聽聽聽聽聽聽聽聽
//聽the聽height,聽and聽vice聽versa
聽聽聽聽聽聽聽聽if(degrees聽==90.0||聽degrees聽==270.0)聽{
聽聽聽聽聽聽聽聽聽聽聽聽
returnnew聽Dimension(height,聽width);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
//聽for聽any聽other聽rotation,聽we聽need聽to聽do聽some聽trigonometry,聽
聽聽聽聽聽聽聽聽
//聽derived聽from聽description聽found聽at:聽聽
聽聽聽聽聽聽聽聽
//http://www.codeproject.com/csharp/rotateimage.asp
聽聽聽聽聽聽聽聽double聽radians聽=聽Math.toRadians(degrees);
聽聽聽聽聽聽聽聽
double聽aW聽=聽Math.abs(Math.cos(radians)聽*聽width);
聽聽聽聽聽聽聽聽
double聽oW聽=聽Math.abs(Math.sin(radians)聽*聽width);
聽聽聽聽聽聽聽聽
double聽aH聽=聽Math.abs(Math.cos(radians)聽*聽height);
聽聽聽聽聽聽聽聽
double聽oH聽=聽Math.abs(Math.sin(radians)聽*聽height);
聽聽聽聽聽聽聽聽
//聽use聽Math.ceil()聽to聽round聽up聽to聽an聽int聽value
聽聽聽聽聽聽聽聽int聽w聽=聽(int)Math.ceil(aW聽+聽oH);
聽聽聽聽聽聽聽聽
int聽h聽=聽(int)Math.ceil(oW聽+聽aH);
聽聽聽聽聽聽聽聽
returnnew聽Dimension(w,聽h);
聽聽聽聽}


Pudgy's World 2005-09-22 07:26 鍙戣〃璇勮
]]>
Rotate Image 45 Degreeshttp://www.tkk7.com/Pudgy/articles/13702.htmlPudgy's WorldPudgy's WorldWed, 21 Sep 2005 23:23:00 GMThttp://www.tkk7.com/Pudgy/articles/13702.htmlhttp://www.tkk7.com/Pudgy/comments/13702.htmlhttp://www.tkk7.com/Pudgy/articles/13702.html#Feedback0http://www.tkk7.com/Pudgy/comments/commentRss/13702.htmlhttp://www.tkk7.com/Pudgy/services/trackbacks/13702.htmlRotate Image 45 Degrees


/*

Java聽Media聽APIs:聽Cross-Platform聽Imaging,聽Media聽and聽Visualization
Alejandro聽Terrazas
Sams,聽Published聽November聽2002,聽
ISBN聽0672320940
*/


import聽java.awt.Graphics;
import聽java.awt.Graphics2D;
import聽java.awt.Image;
import聽java.awt.Insets;
import聽java.awt.MediaTracker;
import聽java.awt.Toolkit;
import聽java.awt.geom.AffineTransform;
import聽java.awt.geom.Point2D;
import聽java.awt.image.AffineTransformOp;
import聽java.awt.image.BufferedImage;
import聽java.awt.image.BufferedImageOp;

import聽javax.swing.JFrame;

/**
聽*聽RotateImage45Degrees.java聽-聽1.聽scales聽an聽image's聽dimensions聽by聽a聽factor聽of
聽*聽two聽2.聽rotates聽it聽45聽degrees聽around聽the聽image聽center聽3.聽displays聽the
聽*聽processed聽image
*/
publicclass聽RotateImage45Degrees聽extends聽JFrame聽{
聽聽
private聽Image聽inputImage;

聽聽
private聽BufferedImage聽sourceBI;

聽聽
private聽BufferedImage聽destinationBI聽=null;

聽聽
private聽Insets聽frameInsets;

聽聽
privateboolean聽sizeSet聽=false;

聽聽
public聽RotateImage45Degrees(String聽imageFile)聽{
聽聽聽聽addNotify();
聽聽聽聽frameInsets聽
=聽getInsets();
聽聽聽聽inputImage聽
=聽Toolkit.getDefaultToolkit().getImage(imageFile);

聽聽聽聽MediaTracker聽mt聽
=new聽MediaTracker(this);
聽聽聽聽mt.addImage(inputImage,聽
0);
聽聽聽聽
try聽{
聽聽聽聽聽聽mt.waitForID(
0);
聽聽聽聽}聽
catch聽(InterruptedException聽ie)聽{
聽聽聽聽}

聽聽聽聽sourceBI聽
=new聽BufferedImage(inputImage.getWidth(null),聽inputImage
聽聽聽聽聽聽聽聽.getHeight(
null),聽BufferedImage.TYPE_INT_ARGB);

聽聽聽聽Graphics2D聽g聽
=聽(Graphics2D)聽sourceBI.getGraphics();
聽聽聽聽g.drawImage(inputImage,聽
0,聽0,聽null);

聽聽聽聽AffineTransform聽at聽
=new聽AffineTransform();

聽聽聽聽
//聽scale聽image
聽聽聽聽at.scale(2.0,聽2.0);

聽聽聽聽
//聽rotate聽45聽degrees聽around聽image聽center
聽聽聽聽at.rotate(45.0*聽Math.PI聽/180.0,聽sourceBI.getWidth()聽/2.0,聽sourceBI
聽聽聽聽聽聽聽聽.getHeight()聽
/2.0);

聽聽聽聽
/*
聽聽聽聽聽*聽translate聽to聽make聽sure聽the聽rotation聽doesn't聽cut聽off聽any聽image聽data
聽聽聽聽聽
*/
聽聽聽聽AffineTransform聽translationTransform;
聽聽聽聽translationTransform聽
=聽findTranslation(at,聽sourceBI);
聽聽聽聽at.preConcatenate(translationTransform);

聽聽聽聽
//聽instantiate聽and聽apply聽affine聽transformation聽filter
聽聽聽聽BufferedImageOp聽bio;
聽聽聽聽bio聽
=new聽AffineTransformOp(at,聽AffineTransformOp.TYPE_BILINEAR);

聽聽聽聽destinationBI聽
=聽bio.filter(sourceBI,聽null);

聽聽聽聽
int聽frameInsetsHorizontal聽=聽frameInsets.right聽+聽frameInsets.left;
聽聽聽聽
int聽frameInsetsVertical聽=聽frameInsets.top聽+聽frameInsets.bottom;
聽聽聽聽setSize(destinationBI.getWidth()聽
+聽frameInsetsHorizontal,聽destinationBI
聽聽聽聽聽聽聽聽.getHeight()
聽聽聽聽聽聽聽聽
+聽frameInsetsVertical);
聽聽聽聽show();
聽聽}

聽聽
/*
聽聽聽*聽find聽proper聽translations聽to聽keep聽rotated聽image聽correctly聽displayed
聽聽聽
*/
聽聽
private聽AffineTransform聽findTranslation(AffineTransform聽at,聽BufferedImage聽bi)聽{
聽聽聽聽Point2D聽p2din,聽p2dout;

聽聽聽聽p2din聽
=new聽Point2D.Double(0.0,聽0.0);
聽聽聽聽p2dout聽
=聽at.transform(p2din,聽null);
聽聽聽聽
double聽ytrans聽=聽p2dout.getY();

聽聽聽聽p2din聽
=new聽Point2D.Double(0,聽bi.getHeight());
聽聽聽聽p2dout聽
=聽at.transform(p2din,聽null);
聽聽聽聽
double聽xtrans聽=聽p2dout.getX();

聽聽聽聽AffineTransform聽tat聽
=new聽AffineTransform();
聽聽聽聽tat.translate(
-xtrans,聽-ytrans);
聽聽聽聽
return聽tat;
聽聽}

聽聽
publicvoid聽paint(Graphics聽g)聽{
聽聽聽聽
if聽(destinationBI聽!=null)
聽聽聽聽聽聽g.drawImage(destinationBI,聽frameInsets.left,聽frameInsets.top,聽
this);
聽聽}

聽聽
publicstaticvoid聽main(String[]聽args)聽{
聽聽聽聽
new聽RotateImage45Degrees("fruits.png");
聽聽}

}



Pudgy's World 2005-09-22 07:23 鍙戣〃璇勮
]]>
Hello, everyone!!http://www.tkk7.com/Pudgy/articles/9622.htmlPudgy's WorldPudgy's WorldMon, 08 Aug 2005 17:12:00 GMThttp://www.tkk7.com/Pudgy/articles/9622.htmlhttp://www.tkk7.com/Pudgy/comments/9622.htmlhttp://www.tkk7.com/Pudgy/articles/9622.html#Feedback0http://www.tkk7.com/Pudgy/comments/commentRss/9622.htmlhttp://www.tkk7.com/Pudgy/services/trackbacks/9622.htmlThanks



Pudgy's World 2005-08-09 01:12 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久精品免费一区二区喷潮| 亚洲成人黄色网址| 日韩一级免费视频| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲国产精品综合福利专区| 国产亚洲日韩在线三区| 国产美女无遮挡免费视频| 中文字幕人成无码免费视频| 免费A级毛片无码A∨中文字幕下载| fc2成年免费共享视频18| 午夜亚洲国产理论片二级港台二级| 亚洲国产美女视频| 亚洲激情在线视频| 国产亚洲福利精品一区| 不卡精品国产_亚洲人成在线| 国产男女猛烈无遮档免费视频网站| 黄色网址免费观看| 国产免费女女脚奴视频网| 在免费jizzjizz在线播| 日韩插啊免费视频在线观看| 暖暖免费日本在线中文| 热99RE久久精品这里都是精品免费| 一级毛片免费在线观看网站| 特级毛片aaaa级毛片免费| 美女羞羞视频免费网站| 美女18一级毛片免费看| 美女又黄又免费的视频| 免费人成网站永久| 一级午夜a毛片免费视频| 人妻免费久久久久久久了| 九九久久精品国产免费看小说 | 在线观看永久免费视频网站| 午夜男人一级毛片免费| 在线观看亚洲免费视频| 国产免费人人看大香伊| 亚洲国产中文v高清在线观看| 亚洲乱码国产一区网址| 亚洲国产一二三精品无码| 亚洲第一AAAAA片| 亚洲精品视频在线免费| 99999久久久久久亚洲|